Работа pyenv заключается в том, что он заполняет каталог shims вспомогательной версией интерпретатора Python и исполняемыми файлами вроде pip и 2to3. Эти файлы можно найти, если каталог находится в начале переменной среды $PATH. Вспомогательная функция — это проходная функция, которая интерпретирует текущую ситуацию и выбирает самую подходящую функцию для выполнения желаемой задачи. Например, когда система ищет программу с именем python, она сначала заглядывает внутрь каталога shims и использует вспомогательную версию, которая в свою очередь передает команду pyenv. После этого pyenv определяет, какая версия Python должна быть запущена, основываясь на переменных среды, файлах версии с расширением *.python и глобальных значениях по умолчанию.

Для виртуальных сред применяется надстройка pyenv-virtualenv (https://github.com/yyuu/pyenv-virtualenv): автоматизирует создание различных сред, а также позволяет использовать существующие инструменты pyenv для переключения между ними.

<p>Autoenv</p>

Autoenv (https://github.com/kennethreitz/autoenv) позволяет легко управлять различными настройками среды за пределами области видимости virtualenv. Переопределяет команду оболочки cd таким образом, что, когда вы переходите в каталог, содержащий файл с расширением. env (например, устанавливая значение переменной среды PATH с помощью URL для базы данных), Autoenv автомагически активизирует среду. Когда вы выходите из каталога, вызвав эту же команду, все отменяется (не работает в Windows PowerShell).

Вы можете установить autoenv в Mac OS X с помощью команды brew:

$ brew install autoenv

Или в Linux:

$ git clone git://github.com/kennethreitz/autoenv.git ~/.autoenv

$ echo 'source ~/.autoenv/activate.sh' >> ~/.bashrc

А затем открыть новое окно консоли.

<p>virtualenvwrapper</p>

Инструмент virtualenvwrapper (http://bit.ly/virtualenvwrapper-docs) предлагает набор команд, который расширяет виртуальные среды Python, чтобы ими было легче управлять. Он помещает все ваши виртуальные среды в один каталог и предоставляет пустые функции перехвата (их можно запустить до или после создания/активизации виртуальной среды или проекта, например функция перехвата может установить переменные среды путем поиска файла с расширением. env внутри каталога).

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

Для того чтобы пропустить полные инструкции по установке virtualenvwrapper (http://bit.ly/virtualenvwrapper-install), сначала убедитесь, что у вас уже установлен virtualenv. Затем в OS X или Linux введите следующую строку в командную консоль:

$ pip install virtualenvwrapper

Используйте команду pip install virtualenvwrapper, если работаете с Python 2, добавьте эту строку в ваш профиль:

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3

Далее введите следующую строку в ваш профиль ~/.bash_profile или любой другой профиль оболочки:

source /usr/local/bin/virtualenvwrapper.sh

Наконец, закройте текущее окно консоли и откройте новое, чтобы активизировать ваш новый профиль. Теперь virtualenvwrapper доступен.

В Windows следует использовать virtualenvwrapper-win. После установки virtualenv введите следующий код:

PS C: \> pip install virtualenvwrapper-win

На обеих платформах наиболее часто используются следующие команды:

• mkvirtualenv my_venv — создает виртуальную среду в каталоге ~/.virtualenvs/my_venv. В Windows среда my_venv будет создана в каталоге, который можно определить, введя команду %USERPROFILE%\Envs в командной строке. Это местоположение можно изменить с помощью переменной среды $WORKON_HOME;

• workon my_venv — активизирует виртуальную среду или переключает вас на указанную среду;

• deactivate — деактивизирует виртуальную среду;

• rmvirtualenv my_venv — удаляет виртуальную среду.

Инструмент virtualenvwrapper предоставляет возможность заполнения имен сред путем нажатия клавиши Tab (может пригодиться, если у вас множество сред и трудно запомнить их имена). Немало других полезных функций задокументировано в полном списке команд virtualenvwrapper (http://bit.ly/virtualenvwrapper-command).

<p>Buildout</p>
Перейти на страницу:

Все книги серии Бестселлеры O'Reilly

Похожие книги