Как проверить доступность переменных окружения python
Перейти к содержимому

Как проверить доступность переменных окружения python

  • автор:

Как просматривать и обновлять переменную PATH

После установки программы запустить ее можно только в том же каталоге, в котором хранится программа. Запустить программу из любого каталога вы можете с помощью переменной среды PATH.

Переменная PATH содержит список каталогов, которые система проверяет перед запуском команды. Обновив переменную PATH, вы сможете запускать любые исполняемые файлы, которые находятся в перечисленных в PATH каталогах, из любого каталога, не вводя абсолютный путь к файлу.

Например, для запуска Python вместо следующего:

Можно ввести следующую команду, поскольку каталог /usr/bin включен в переменную PATH:

Каталоги перечислены в порядке приоритета, поэтому первыми упоминаются те, которые нужно проверять первыми.

В этом руководстве вы научитесь проверять переменную PATH и обновлять ее значение.

1: Просмотр переменной PATH

Вы можете просмотреть переменную PATH с помощью следующей команды:

По умолчанию переменная PATH может выглядеть примерно так (пути к файлам могут немного отличаться в зависимости от вашей системы):

Некоторые каталоги упоминаются по умолчанию, а каждый каталог в PATH отделяется двоеточием (:). Система проверяет эти каталоги слева направо.

Если каталог, в котором установлена необходимая программа, не перечислен в переменной PATH, вы можете добавить его самостоятельно.

2: Добавление каталога в переменную среды PATH

Добавить каталог в PATH можно двумя способами – поместив его в начале или в конце пути.

Помещая каталог (например, /the/file/path) в начало PATH, вы говорите системе, что его нужно проверять первым:

Каталог, добавленный в конец PATH, будет проверен после всех остальных каталогов:

Чтобы поместить в PATH несколько каталогов одновременно, добавьте двоеточие между ними:

После выполнения команды export можно просмотреть переменную PATH, чтобы отследить изменения:

export PATH=$PATH:/the/file/path
echo $PATH

Вы получите такой вывод:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/the/file/path

Этот метод будет работать только для текущего сеанса оболочки. Как только вы выйдете из текущего сеанса и запустите новый, переменная PATH будет сброшена до стандартного значения, а добавленный в нее каталог будет удален. Чтобы значение PATH сохранялось независимо от сеанса оболочки, оно должно храниться в файле.

3: Как навсегда добавить каталог в переменную PATH

На этом этапе мы покажем, как навсегда добавить каталог в конфигурационный файл оболочки (~/.bashrc, если вы используете оболочку bash, или ~/.zshrc, если вы используете zsh). В этом руководстве мы работаем с файлом ~/.bashrc.

Сначала откройте файл:

В файле ~/.bashrc хранятся данные, которые не нужно изменять. В конец файла добавьте команду export с новым каталогом:

. Adding paths to your PATH export PATH=$PATH:the/file/path

Напоминаем, что каталоги перечисляются в PATH по приоритетности.

Сохраните и закройте файл. Изменения в переменную PATH будут внесены после запуска нового сеанса оболочки. Чтобы применить изменения к текущему сеансу, используйте команду source:

Позже вы можете добавить новые каталоги. Для этого снова откройте этот файл и добавьте каталоги в существующую команду export.

Заключение

Переменная среды PATH является важным аспектом работы командной строки. Она позволяет запускать программы, такие как echo и python3, из любого каталога, не вводя полный путь к программе. Здесь вы узнали, как редактировать ее значение и сохранять его на постоянной основе.

Устанавливаем python-пакеты с помощью pip

Python 3 логотип

pip — это система управления пакетами, которая используется для установки и управления программными пакетами, написанными на Python.

Установка pip

Прежде чем с помощью pip устанавливать python-пакеты, нужно сначала установить сам pip.

Python 3.4+

Начиная с Python версии 3.4, pip поставляется вместе с интерпретатором python.

Python

  • Загрузить get-pip.py (обязательно сохранив с расширением .py).
  • Запустить этот файл (могут потребоваться права администратора).

Есть ещё один способ (для Windows). Возможно, он является более предпочтительным:

  • Установить setuptools http://www.lfd.uci.edu/~gohlke/pythonlibs/#setuptools
  • Установить pip http://www.lfd.uci.edu/~gohlke/pythonlibs/#pip

Начало работы

Попробуем с помощью pip установить какой-нибудь пакет, например, numpy:

sudo pip3 install numpy
pip3 install numpy

Может не сработать, написав: «python» не является внутренней или внешней командой, исполняемой программой или пакетным файлом (такого, скорее всего, не должно быть при установке pip вторым способом, но проверить не на чем).

Тогда нужно обращаться напрямую:

Либо добавлять папку C:\Python34\Tools\Scripts\ в PATH вручную (самому проверить не на чем, можете посмотреть на stackoverflow. У кого получится — напишите в комментарии).

Что ещё умеет делать pip

Пробежимся по основным командам pip:

pip help — помощь по доступным командам.

pip install package_name — установка пакета(ов).

pip uninstall package_name — удаление пакета(ов).

pip list — список установленных пакетов.

pip show package_name — показывает информацию об установленном пакете.

pip search — поиск пакетов по имени.

pip —proxy user:passwd@proxy.server:port — использование с прокси.

pip install -U — обновление пакета(ов).

pip install —force-reinstall — при обновлении, переустановить пакет, даже если он последней версии.

Для вставки кода на Python в комментарий заключайте его в теги

  • Модуль csv - чтение и запись CSV файлов
  • Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
  • Онлайн-обучение Python: сравнение популярных программ
  • Книги о Python
  • GUI (графический интерфейс пользователя)
  • Курсы Python
  • Модули
  • Новости мира Python
  • NumPy
  • Обработка данных
  • Основы программирования
  • Примеры программ
  • Типы данных в Python
  • Видео
  • Python для Web
  • Работа для Python-программистов
  • Сделай свой вклад в развитие сайта!
  • Самоучитель Python
  • Карта сайта
  • Отзывы на книги по Python
  • Реклама на сайте

Переменные окружения в Linux

Переменные окружения в Linux - это специальные переменные, определенные оболочкой и используемые программами во время выполнения. Они могут определяться системой и пользователем. Системные переменные окружения Linux определяются системой и используются программами системного уровня.

Например, команда PWD использует системную переменную, чтобы сохранять прежнюю рабочую директорию. Пользовательские переменные окружения устанавливаются пользователем, для текущей оболочки, временно или постоянно. Вся концепция добавления и удаления переменных оболочки крутится вокруг нескольких файлов, команд и различных оболочек.

Виды переменных окружения

Если смотреть более широко, переменная окружения может быть трех типов:

1. Локальные переменные окружения

Эти переменные определены только для текущей сессии. Они будут безвозвратно стерты после завершения сессии, будь то удаленный доступ или эмулятор терминала. Они не хранятся ни в каких файлах, а создаются и удаляются с помощью специальных команд.

2. Пользовательские переменные оболочки

Эти переменные оболочки в Linux определяются для конкретного пользователя и загружаются каждый раз когда он входит в систему при помощи локального терминала, или же подключается удаленно. Такие переменные, как правило, хранятся в файлах конфигурации: .bashrc, .bash_profile, .bash_login, .profile или в других файлах, размещенных в директории пользователя.

3. Системные переменные окружения

Эти переменные доступны во всей системе, для всех пользователей. Они загружаются при старте системы из системных файлов конфигурации: /etc/environment, /etc/profile, /etc/profile.d/ /etc/bash.bashrc.

Конфигурационные файлы переменных окружения Linux

Здесь мы кратко рассмотрим различные конфигурационные файлы, перечисленные выше, которые используются для настройки переменных окружения для всей системы или конкретного пользователя.

.bashrc

Это файл переменных конкретного пользователя. Загружается каждый раз, когда пользователь создает терминальный сеанс, то есть проще говоря, открывает новый терминал. Все переменные окружения, созданные в этом файле вступают в силу каждый раз когда началась новая терминальная сессия.

.bash_profile

Эти переменные вступают в силу каждый раз когда пользователь подключается удаленно по SSH. Если этот файл отсутствует система будет искать .bash_login или .profile.

/etc/environment

Этот файл для создания, редактирования и удаления каких-либо переменных окружения на системном уровне. Переменные окружения, созданные в этом файле доступны для всей системы, для каждого пользователя и даже при удаленном подключении.

/etc/bash.bashrc

Системный bashrc. Этот файл выполняется для каждого пользователя, каждый раз когда он создает новую терминальную сессию. Это работает только для локальных пользователей, при подключении через интернет, такие переменные не будут видны.

/etc/profile

Системный файл profile. Все переменные из этого файла, доступны любому пользователю в системе, только если он вошел удаленно. Но они не будут доступны, при создании локальной терминальной сессии, то есть если вы просто откроете терминал.

Все переменные окружения Linux созданные с помощью этих файлов, могут быть удаленны всего лишь удалением их оттуда. Только после каждого изменения, нужно либо выйти и зайти в систему, либо выполнить эту команду:

Добавление пользовательских и системных переменных окружения в Linux

Теперь, когда вы знаете немного теории, перейдем к практике. Локальные переменные окружения в Linux можно создавать следующими командами:

var=значение
export var=значение

Эти переменные будут доступны только для текущей терминальной сессии.

Для удаления переменных окружения можно использовать несколько команд:

1. Использование env

По умолчанию с помощью env можно посмотреть все установленные переменные среды. Но с опцией -i она позволяет временно удалить все переменные оболочки и выполнить команду без переменных.

$ env -i [переменная=значение] команда

Var - это любая переменная, которую вы хотите передать этой команде.

Такая команда запустит оболочку вообще без переменных окружения:

После запуска такого окружения, не будет доступно никаких переменных, но после выхода все вернется на свои места.

2. Использование unset

Это другой способ удаления переменных окружения Linux. Unset удаляет переменную по имени до конца текущей сессии:

3. Установить значение переменной в ''

Это самый простой способ удаления переменных окружения в Linux, устанавливая пустое значение переменной, вы удаляете ее до конца текущей сессии.

Замечание: С помощью таких способов вы можете изменять значения системных или пользовательских переменных, но они будут актуальны только для текущего сеанса.

Создание пользовательских и системных переменных окружения

В этом разделе рассмотрим как установить и удалить системные и пользовательские переменные не только для текущего сеанса, а так чтобы эффект сохранялся после перезагрузки.

1. Устанавливаем и удаляем локальные переменные в Linux

Давайте создадим локальную переменную VAR и установим ей любое значение, затем удалим ее с помощью unset и убедимся что она удалена:

VAR1='Losst'
echo $VAR1
unset VAR1
echo $VAR1

env2

Другой способ создать переменную - команда export. Удалим ее присвоив пустое значение:

export VAR='Losst'
echo $VAR
VAR=
echo $VAR

env1

Теперь создадим переменную VAR2 также зададим ей значение. А потом временно удалим все локальные переменные выполнив env -i. Она запустит оболочку без каких-либо переменных. После ввода exit все переменные будут восстановлены.

VAR2='Losst'
echo $VAR2
env -i bash
echo $VAR2

env4

Установка и удаление пользовательских переменных

Отредактируйте файл .bashrc, в вашей домашней директории, добавив команду export, для экспортирования нужной переменной. Затем выполните команду source для применения изменений. Создадим, например, переменную CD:

Добавьте такую строчку (o, затем вставить, затем Esc и :wq):

export CD='This is Losst Home'

Теперь осталось обновить конфигурацию:

source .bashrc
echo $CD

env5

Для удаления этой переменной просто удалите ее из .bashrc.

Теперь добавим переменную окружения с помощью .bash_profile. Эта переменная, как вы уже знаете будет доступна только при удаленном входе:

export VAR2='This is Losst Home'

И выполните эти команды, чтобы применить изменения и проверить добавление переменной:

source .bash_profile
echo $VAR2

Переменная недоступна, так как вы создали локальную терминальную сессию, теперь подключитесь по ssh:

ssh user@localhost
echo $VAR2

env7

Удалить эту переменную окружения можно так же как и в предыдущем случае, удалив ее из файла.

Замечание: Эти переменные доступны всегда, но не для всех пользователей.

Установка и удаление системных переменных окружения

Создадим переменную, доступную для всех пользователей, во всех терминальных сессиях, кроме удаленных, добавлением ее в /etc/bash.profile:

vi /etc/bash.profile
export VAR='This is system-wide variable'

Теперь эта переменная доступна для всех пользователей, во всех терминалах:

echo $VAR
sudo su
echo $VAR
su -
echo $VAR

env8

Если вы хотите сделать переменную окружения доступной для всех пользователей, которые подключаются к этой машине удаленно, отредактируйте файл /etc/profile:

export VAR1='This is system-wide variable for only remote sessions'

Обновите конфигурацию, и проверьте доступность переменной, она будет доступна только удаленно:

source /etc/profile
echo $VAR1

Если нужно добавить переменную окружения в Linux, так чтобы она была доступна и удаленно, и для локальных сессий, экспортируйте ее в /etc/environment:

export VAR12='I am available everywhere'

source /etc/environment
echo $VAR12
sudo su
echo $VAR12
exit
ssh localhost
echo $VAR12

env9

Как видите, переменная доступна и для локальных пользователей и удаленно.

Выводы

С помощью этих нескольких способов мы можем изменить переменные окружения. Если вы знаете другие интересные способы это сделать, поделитесь в комментариях!

Postman: что это такое и как им пользоваться

Рассказываем о мощном инструменте для работы с API, который так любят тестировщики.

Кадр: мультсериал «Простоквашино» / «Союзмультфильм», 2018

Иван Стуков

Иван Стуков
Журналист, изучает Python. Любит разбираться в мелочах, общаться с людьми и понимать их.

Весь современный веб построен на использовании API, да и вообще бэкенд редко обходится без программных интерфейсов. При всём удобстве работы с ними, есть и небольшая сложность: под эти интерфейсы нужно создавать архитектуру и логику, писать документацию, тестировать и масштабировать их.

К счастью, есть много сервисов, призванных облегчить этот процесс. Один из них — Postman. О нём часто говорят исключительно как об инструменте тестирования API, но это далеко не всё, что умеет платформа.

Что такое Postman и зачем он нужен

Postman — это сервис для создания, тестирования, документирования, публикации и обслуживания API. Он позволяет создавать коллекции запросов к любому API, применять к ним разные окружения, настраивать мок-серверы, писать автотесты на JavaScript, анализировать и визуализировать результаты запросов.

Программа поддерживает разные виды архитектуры API: HTTP, REST, SOAP, GraphQL и WebSockets. Postman вовсю используют в Twitter, WhatsApp и Imgur, но благодаря удобному графическому интерфейсу разобраться в платформе может даже новичок.

Скачать Postman можно бесплатно на официальном сайте. Есть версии под Linux, Windows и macOS — правда, перед началом использования нужно зарегистрироваться.

Как устроен Postman

Основная сущность в Postman — рабочее пространство (workspace). В бесплатной версии доступно три вида рабочих пространств:

  • личное — видно только владельцу;
  • командное — видно только членам команды, которые в нём работают;
  • публичное — доступно всем желающим.

В Pro-версии появляется доступ к приватным рабочим пространствам — такие пространства доступны не всем членам команды, а только приглашённым. В Enterprise-версии добавляются партнёрские — они видны не только членам команды, но и приглашённым партнёрам.

Посмотрим, из чего состоит рабочее пространство Postman:

Самое интересное здесь — боковая панель слева. Семь её вкладок соответствуют основным инструментам Postman.

  • Collections. Здесь хранятся коллекции запросов к API. Несколько запросов внутри одной коллекции можно объединять в папки.
  • APIs. В этой вкладке можно хранить целые API: их определения и коллекции.
  • Environments. Здесь создаются и хранятся окружения, в которых лежат переменные. Активное окружение можно менять из любой вкладки в правом верхнем углу (где на скриншоте написано No Environment). Также тут можно создавать глобальные переменные, с которыми можно работать везде вне зависимости от окружения.
  • Mock Servers. Здесь можно создавать фиктивные серверы, которые имитируют поведение реальных. Это полезно при тестировании.
  • Monitors. Мониторы позволяют визуализировать и отслеживать работу API: следить за производительностью, проверять доступность и корректность работы сервера по расписанию, отправлять уведомления о сбоях.
  • Flows. Это инструмент, с помощью которого можно настроить логику API-приложений в визуальном редакторе. На март 2023 года он всё ещё доступен только в тестовом режиме, чтобы его использовать, придётся отправить заявку.
  • History. Здесь хранится история всех отправленных запросов. Их можно сохранять, объединять в коллекции, создавать для них документацию, мониторы и мок-серверы.

Как пользоваться Postman

Postman — популярный инструмент среди тестировщиков. Его можно использовать для написания запросов к любому API, даже если при их создании Postman никак не использовали.

У платформы есть и собственный API, на котором любой желающий может протестировать работу сервиса и разобраться в работе запросов. Этот эхо-сервер возвращает клиенту те же данные, которые тот ему прислал. Документацию к нему можно прочитать здесь.

Давайте попробуем написать собственный запрос к API и протестировать его работу.

Как создать коллекцию

Чтобы создать коллекцию, нужно перейти во вкладку Collections и нажать плюс. В левой части приложения появится пункт New Collection.

Изменим название на Test Collection. Для этого нажмём на три точки справа от New Collection и во всплывающем окошке выберем пункт Rename.

В рабочей области коллекции есть пять вкладок:

  • Authorization. Здесь можно настроить метод и параметры авторизации, которые будут использоваться в каждом запросе внутри коллекции.
  • Pre-request Script. Здесь можно написать программу на JavaScript, которая будет выполняться перед каждой отправкой запроса внутри коллекции. Для наиболее распространённых алгоритмов Postman предлагает готовые сниппеты. Их можно использовать, чтобы не писать код с нуля.
  • Tests. Работает как Pre-request Script, но выполняет код после выполнения запроса. Именно этот раздел используют тестировщики для проверки API. Здесь тоже есть готовые сниппеты.
  • Variables. Здесь можно создать переменную и присвоить ей значение. Потом эту переменную можно использовать, указав её название в двойных фигурных скобках >.
  • Runs. Postman позволяет запускать запросы не по отдельности, а все сразу — внутри одной коллекции или папки. В разделе Runs хранится информация о таких прогонах и результатах их тестов.

Как отправить запрос

Создать запрос можно несколькими способами:

  • нажать в левом верхнем углу кнопку New и выбрать нужный тип запроса;
  • нажать на плюс на панели вкладок в верхней части приложения;
  • нажать на три точки возле названия коллекции и во всплывающем меню выбрать пункт Add request.

Если вы выбираете первый или второй способ, то при первом сохранении запроса нужно указать коллекцию, в которой тот будет храниться.

Напишем GET-запрос к https://postman-echo.com и назовём его Test GET (названия у запросов можно менять так же, как и у коллекций). Для этого:

  • Создадим новый запрос.
  • Выберем в нём метод GET.
  • Введём URL: https://postman-echo.com/get/.
  • В разделе Params введём ключи test_key1, test_key2 и значения test_value1, test_value2 соответственно.
  • Нажмём кнопку Send.

Эхо-сервер вернул нам JSON-файл с заголовками и аргументами, которые мы ему передали (некоторые заголовки Postman отправляет автоматически).

Также после получения ответа можно отдельно посмотреть cookies, заголовки и результаты тестов, если они были. Кроме того, Postman указывает статус ответа, скорость его получения и размер возвращённого файла.

Как и в случае с коллекциями, в запросах в Postman можно указывать метод и параметры авторизации, предзапросные скрипты и тесты.

Авторизация по умолчанию наследуется от коллекции, но её можно переопределить в запросе. Скрипты же выполняются полностью: как общие для коллекции, так и написанные специально для запроса.

Как писать тесты

Теперь напишем к нашему GET-запросу простой тест: проверку кода ответа. Если код ответа 200 (то есть запрос выполнен успешно) — тест пройден.

Для этого перейдём во вкладку Tests и в правой колонке найдём сниппет Status code: Code is 200. Нажмём на него — появится скрипт.

Теперь отправим запрос ещё раз. В поле ответа во вкладке Test Results появится отчёт о тесте: PASS (то есть пройден успешно).

Теперь напишем ещё два теста, но не внутри отдельного запроса, а внутри коллекции. Первый тест будет проверять, есть ли в теле ответа строка test_value2, второй — есть ли там строка string_you_want_to_search.

Перейдём к Test Collection, на вкладку Tests. Выберем сниппет Response body: Contains string и нажмём на него два раза. В первом блоке кода строку string_you_want_to_search заменим на test_value2, во втором оставим как есть. Не забудем сохранить изменения, чтобы новые тесты применились к запросу.

Теперь отправим к эхо-серверу тот же GET-запрос. Он должен пройти первый тест (потому что мы передавали test_value2 в качестве одного из значений) и не пройти второй. Посмотрим на результат.

Всё как мы и предполагали. К запросу применились как его собственные тесты, так и тесты всей коллекции, один из которых он не прошёл. Причём тесты коллекции выполнились первыми — до тестов самого запроса.

Порядок выполнения скриптов, написанных в разных местах коллекции, таков:

  • Сначала выполняются скрипты коллекции.
  • Затем скрипты папки (там их тоже можно писать).
  • И уже потом скрипты запроса.

Это работает с любым кодом: как внутри Tests, так и внутри Pre-request Scripts.

Как создать переменную

Переменные, как и тесты, «живут» на разных уровнях Postman, и писать их можно в разных местах:

  • Глобальные переменные применяются ко всему рабочему пространству. Написать их можно во вкладке Environments в разделе Globals.
  • Переменные коллекции создаются внутри конкретной коллекции и работают только внутри неё.
  • Переменные окружения задаются на уровне окружения во вкладке Environments. Чтобы применить их к запросу, нужно напрямую связать его с окружением.
  • Локальные переменные существуют на уровне скриптов, которые выполняются при отправке запросов.
  • Переменные данных возникают, когда мы пользуемся Collection Runner — инструментом для запуска сразу всех скриптов внутри коллекции или папки.

Чем меньше область видимости переменной, тем выше её приоритет. То есть если где-то встретятся глобальная и локальная переменная с одинаковыми именами, то применится значение локальной переменной.

Создадим новое окружение Test Environment — сделать это можно по аналогии с созданием коллекции, но только во вкладке Environment.

Создадим переменную test_variable и присвоим ей значение test_value3. Сохраним изменения в окружении.

Затем перейдём к тестовой коллекции и применим к ней окружение, выбрав его в правом верхнем углу. Теперь мы можем использовать в этой коллекции все переменные окружения.

Усовершенствуем второй скрипт в тестах коллекции. Для этого строку "string_you_want_to_search" заменим на сниппет Get an environment variable. В нём variable_key заменим на название переменной test_variable. Сохраним изменения.

Таким образом, второй скрипт будет проверять, есть ли в ответе сервера соответствие не строке string_you_want_to_search, а содержимому переменной test_variable.

Теперь перейдём к GET-запросу и создадим новый параметр. Его ключом будет test_key3, значением — содержимое переменной test_variable. Для этого её название заключим в двойные фигурные скобки >. Сохраним изменения и отправим запрос.

Как видим, все тесты пройдены. Значит, значение нашей переменной корректно извлекается и в параметрах запроса, и в тестах.

Резюмируем

Postman — инструмент для работы API в течение всего его жизненного цикла. Но особенно часто им пользуются тестировщики из-за богатого инструментария запросов к API: в нём можно создавать и настраивать запросы, объединять их в коллекции и папки, применять к ним разные окружения со своими переменными, писать автотесты.

У Postman есть платные тарифы, но для начала работы, личных проектов и тестирования API подойдёт и бесплатная версия.

Больше интересного про код в нашем телеграм-канале. Подписывайтесь!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *