Для программирования, как и для любой другой работы, необходимо создание комфортных условий. По-этому, для программирования на Python важно создание удобной среды из стабильных, обновляемых библиотек и инструментов. Так как в среде Linux для установка программного обеспечения используются различные пакетные менеджеры, с помощью которых можно установить практически любое ПО, исходный код и различные библиотеки. Но этого недостаточно для исследования и разработки на языке Python. Дело в том, что установка системным пакетным менеджером требует root-привилегий, а так же, репозитарии дистрибутива не содержат всего многообразия библиотек для Python. К тому же разработчику важно, чтобы пользователям его ПО не приходилось сталкиваться в проблемами различий версий библиотек Python на различных дистрибутивах Linux. Вполен возможна ситуация когда у вашего пользователя установленна более старая версия дистрибутива Linux или же он использует дистрибутив другой платформы. То-есть, разработчик должны полностью контролировать свой код и своё окружение.
Для решения этой проблемы в Python имеет собственный менеджер и репозитарий исходного кода. Называется этот инструмент virtualenv. С помощью этого инструмента можно создавать так называемые "песочницы", то-есть рабочее окружение локализованное в домашней директории пользователя. Для управления такой "песочницей" не нужны права root-пользователя и их можно создавать сколько угодно раз и в любой конфигурации. Установить этот инструмент в дистрибутивах основанных на Debian можно с помощью команды:
sudo api-get install python-virtualenv
После установки этого приложения в командной строке появляется возможность запустить утилиту virtualenv. Запуск этой утилиты без параметров выводит справочную информацию по использованию этой утилиты, на начальном этапе нас будет интересовать всего два параметра:
-p PYTHON_EXE, --python=PYTHON_EXE
с помощью этого параметра можно указать необходимую версию интерпретатора Python, мы будем использовать Python 3.5.2
DEST_DIR
с помощью этого параметра указывается путь где будет создана песочница (виртуальное окружение)
Для работы нам необходимо подготовить иерархию директорий для размещения наших учебных проектов. Пускай она будет вот такой
tree -d -L 3 ~/Project/python_3.5.2/
/home/dev/Project/python_3.5.2/
└── venv
├── bin
├── include
│ └── python3.5m -> /usr/include/python3.5m
├── lib
│ └── python3.5
└── share
└── python-wheels
Тут видно что в домашней директории пользователя dev, создана директория Project/python_3.5.2/venv, которая в свою очередь содержит набор директокторий реализующих виртуальное рабочее окружение. Создать такое можно с помощью следующего набора команд:
mkdir -p ~/Project/python_3.5.2/
cd ~/Project/python_3.5.2/
virtualenv -p /usr/bin/python3.5 venv
После создания песочницы можно просмотреть результаты работы в обычном файловом менежере, а так же можно перключиться на использование этой песочницы. Но сначала, для того чтобы увидеть разницу между использованием обычной виртуальной рабочей средой, предлагаю проделать следующие действия -- сохранить описание обычной рабочей среды, переключиться в виртуальную и сравнить с основной. И так, повторяем
python -V 2> /tmp/env.txt
env >> /tmp/env.txt
source ~/Project/python_3.5.2/venv/bin/activate
python -V > /tmp/venv.txt
env >> /tmp/venv.txt
vimdiff /tmp/env.txt /tmp/venv.txt
в первой и второй строках мы сохраняем в файл /tmp/env.txt номер текущей версии интерпретатора Python и значения обычных переменных окружения
в третьей строке мы активируем виртуальное окружение
в четвёртой и пятой строках мы сохраняем в файл /tmp/venv.txt номер версии интерпретатора Python и значения переменных уже виртуального окружения
в шестой строке запускаем редактор vim в режиме сравнения двух, только что созданных файлов с подсветкой синтаксиса. В таком режиме видно что интерпертаторы Python имеют разные версии и в новом рабочем окружении появились две новые переменные и одна изменена
VIRTUAL_ENV -- хранит путь к размещению песочницы
PS1 -- содержит строку приветствия, это декоративная переменная позволяющая настраивать внешний вид терминала использующего виртуальное рабочее окружение
ну и наконец самое главное, переменная PATH теперь содержит отличный от стандартного набор путей к приложениям и библиотекам, то-есть, именно благодаря этой переменной возможно использование компонентов которых нет в стандартной системе
для того чтобы выйти из vim необходимо нажать на символ : и поле ввода команды ввести qall и нажать Enter.
Так же, возможно внимательные уже заметили, что после ввода команды source ~/Project/python_3.5.2/venv/bin/activate изменилась строка ввода команд. Это произошло благодаря переменной PS1 (эта переменная позволяет формировать строку приветствия ввод команда, поддерживаются даже цветовые схемы)
И так, после ввода команды source ~/Project/python_3.5.2/venv/bin/activate текущий терминал переключается на использование виртуальной среды разработки и внешне отличается от обычной лишь строкой приветствия. Осталось сделать лишь последний штрих и рассказать про пакетный менеджер Python.
Для комфортной работы с Python необходимо установить интерактивную консоль. Собственно сам Python имеет такую и она доступна после запуска утилиты python, но она так же проста и удобна для передвижения как обычный велосипед. Я рекомедую устновить bpython следующим образом:
du -sh ~/Project/python_3.5.2/venv/
pip install bpython
du -sh ~/Project/python_3.5.2/venv/
Это пример использования пакетного менеджера pip для установки различных python приложений. Обращаю внимание, что утилита pip доступна только внутри виртуальной среды. Выполните команду which pip чтобы увидеть где находит исполняемый файл пакетного менеджера
which pip
/home/dev/Project/python_3.5.2/venv/bin/pip
Команда du -sh вычислят объём данных в директории с нашей виртуальной средой, первая до установки интерактивной консоли, вторая после установки. Эта комбинация команд позволяет убедиться, что новое ПО было скачано и установленно в директории виртуальной рабочей среды.
Можно сказать, что на это установка Python и создание рабочей среды законченно, но следует сообщить ещё о нескольких вещах:
- После завершения работы, например выключение компьютера на ночь или просто закрытие терминала, виртуальная рабочая среда не активируется автоматически. По-этому с утра можно обнаружить, что утилита pip или bpython не доступны. Для активации виртуальной рабочей среды необходимо повтор запустить скрипт source ~/Project/python_3.5.2/venv/bin/activate.
- Я рекомендую сразу освоить расширенный функционал интерпретатора Linux команд bash. Для этого откройте терминал и выполните команду history. В результате работы программы на экране появится список команд которые вы вводили раньше. Дело в том, что bash ведёт внутренний журнал команд которые в нём выполнялись. Этот журнал находится в файле ~/.bash_history и механизм логирования команд удобно использовать для быстрого набора повторно введённых команд. То-есть, всё что вы делаете в терминале записывается в файл и чтобы снова не вводить длинную команду нужно нажать сочетание клавишь Ctrl+r и появившееся приглашение ввода текста написать часть ранее введённой команды -- вводим первые буквы команды source (эта команда использовалась для активации виртуальной рабочей среды), в ответ на ввод bash выводит ранее введённую команду и остаётся только нажать кнопку Enter после чего bash выполнит повторяющееся действие.
- Для работы с виртуальной средой я рекомендую сразу в одной команде выполнять активацию виртуальной среды и переход в рабочий каталог проекта. Это позволит быстро входить в вирутальную рабочую среду и выглядит примерно вот так: cd source ~/Project/python_3.5.2/ && source venv/bin/activate
Вот и всё, открываем новый терминал или новую вкладку терминала, жмём Ctrl+r вводим часть команды cd source ~/Project/python_3.5.2/ && source venv/bin/activate и может может приступать к исследованию интерпретатора Python
Комментариев 0