Установка и активизация виртуальных сред 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.

Тщательно следите за тем, чтобы не вызвать команду pip install — r requirements.txt за пределами виртуальной среды. Если версия какой-нибудь библиотеки, указанной в файле requirements.txt, будет отличаться от той, что установлена на вашем компьютере, pip изменит ее на ту, которая указана в файле requirements.txt.

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

Чтобы вернуться к обычным системным настройкам, введите следующую команду:

$ deactivate

Для получения более подробной информации смотрите документацию для виртуальных сред (http://bit.ly/virtualenv-guide), официальную документацию для virtualenv (https://virtualenv.pypa.io/en/latest/userguide.html) или официальное руководство по упаковке для Python (https://packaging.python.org/). Пакет pyvenv, который распространяется как часть стандартной библиотеки Python в версиях 3.3 и выше, не заменяет virtualenv (фактически является зависимостью для virtualenv), поэтому эти инструкции работают для всех версий Python.

<p>pyenv</p>

Инструмент pyenv (https://github.com/yyuu/pyenv) позволяет работать с несколькими версиями интерпретаторов Python одновременно. Это решает проблему, возникающую при наличии нескольких проектов, когда каждый требует разных версий Python, но вам все еще придется использовать виртуальные среды в том случае, если в библиотеках возникнет конфликт зависимостей (например, потребуются разные версии Django). Вы можете установить Python 2.7 для совместимости с одним из проектов и при этом применять в качестве интерпретатора по умолчанию Python 3.5. Инструмент pyenv не ограничен только версиями CPython, он также установит интерпретаторы PyPy, Anaconda, Miniconda, Stackless, Jython и IronPython.

Перейти на страницу:

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

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