Автостопом по Python | страница 29



Команда virtualenv позволяет достичь этого, создавая отдельный каталог, содержащий гибкую ссылку на исполняемый файл Python, копию pip и место для библиотек Python (добавляет его в начало переменной среды PATH при активизации, а затем возвращает переменную среды в исходное состояние при деактивизации). Вы также можете использовать установленные вместе с системой версию Python и библиотеки, указав требуемые параметры командной строки.


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


Создание и активизация виртуальной среды

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

Mac OS X и Linux. Вы можете указать версию Python с помощью аргумента — python. Далее используйте сценарий активизации, чтобы установить значение переменной среды PATH при входе в виртуальную среду:

>$ cd мой_каталог_проекта

>$ virtualenv — python python3 my-venv

>$ source my-venv/bin/activate

Windows. Нужно настроить политику выполнения для системы (если вы еще этого не сделали), чтобы разрешить запуск сценариев, созданных локально[30].

Запустите PowerShell от имени администратора и введите следующий код:

>PS C: \> Set-ExecutionPolicy RemoteSigned

Ответьте «Y» на появившийся вопрос и выйдите, после чего в обычной версии PowerShell создайте виртуальную среду:

>PS C: \> cd мой_каталог_проекта

>PS C: \> virtualenv — python python3 my-venv

>PS C: \>.\my-venv\Scripts\activate

Добавление библиотек в виртуальную среду

Как только вы активизировали виртуальную среду, первым исполняемым файлом pip будет тот, который расположен в только что созданном каталоге >my-venv. Этот файл установит библиотеки в следующую папку:

• >my-venv/lib/python3.4/site-packages/ (в системах POSIX[31]);

• >my-venv\Lib\site-packages (в Windows).

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

>$ pip freeze > requirements.txt

Она позволяет записать все текущие установленные пакеты (которые, как мы надеемся, также являются зависимостями проекта) в файл с именем requirements.txt. Взаимодействующие участники могут установить все зависимости в свою собственную виртуальную среду при наличии файла requirements.txt, введя следующую команду:

>$ pip install — r requirements.txt

Команда pip установит перечисленные зависимости, переопределяя зависимости, указанные в подпакетах, в том случае, если возникли конфликты. Зависимости, указанные в файле requirements.txt, предназначены для установки всей среды Python. Для того чтобы установить зависимости при распространении библиотеки, для функции setup(), размещенной в файле setup.py, лучше всего использовать аргумент с ключевым словом install_requires.