В материале рассматривается установка модулем virtualenv
для Python 2.7. и работа с виртуальным окружением.
Что бы использовать виртуальное окружение в Python 3.5 и выше, используйте встроенный модуль venv
.
virtualenv
в Python 2.7.Внимание! Сторонний модуль virtualenv
для Unix систем необходимо устанавливать под версию python, которая используется операционной системой по умолчанию!!!
Для начала использования virtualenv
, ее нужно установить. Виртуальное окружение будем ставить в систему, т. к. виртуальная среда системой ни как не используется. Это первое и последнее, что устанавливается в систему.
Помним, что поставляемый с Unix системами Python не имеет пакетного менеджера pip
, следовательно модуль virtualenv
, необходимо устанавливать из пакетов операционной системы, при помощи пакетного менеджера apt-get
или используя флаг -m
интерпретатора Python. Пользователям Windows, то же будет интересно yзнать о таком методе установки пакетов, не входящих в стандартную библиотеку.
# Для пользователей Ubuntu, Debian $ sudo apt install python-virtualenv # или $ sudo python -m pip install virtualenv # Для пользователей Windows > python -m pip install virtualenv
Для Unix систем предпочтительней использовать установку уже скомпилированного модуля virtualenv
под используемую по умолчанию версию Python операционной системы, командой sudo apt install python-virtualenv
.
virtualenv
в Python 3.x.Если в вашей системе по умолчанию используется версия Python3, то модуль virtualenv
можно установить следующей командой:
# Для пользователей Ubuntu, Debian $ sudo apt install python3-virtualenv $ virtualenv --version virtualenv 20.0.17 from /usr/lib/python3/dist-packages/virtualenv/__init__.py
Обратите внимание, что в Debian, установленный таким образом модуль virtualenv
для python3 может не заработать. В таком случае, необходимо файл virtualenv.py
запускать вручную или, для удобства создать командный файл. В дистрибутивах Ubuntu, такой проблемы не замечено.
$ python3 /usr/lib/python3/dist-packages/virtualenv.py
Так же для версий Python 3.5 и выше, для создания виртуальных сред, можно использовать встроенный модуль venv
. В этом случае устанавливать ничего не надо. Обратите внимание, что функциональность и приемы использования встроенного модуля venv
сильно отличается от стороннего модуля virtualenv
.
Перенос экземпляра системного Python или того, который мы установили:
# Создаем директорию для нашего виртуального окружения $ mkdir myVenv # Для переноса экземпляра Python v.3, если он установлен в системе $ virtualenv --python=python3 myVenv # Для переноса экземпляра нужного нам Python для Linux $ virtualenv --python=/path/to/python-3.x.x/bin/python myVenv # Для переноса экземпляра нужного нам Python для Windows > virtualenv --python=c:\python-3.x.x\bin\python myVenv
Где /path/to/python-3.x.x/bin/python
путь до бинарного файла, нужного нам интерпретатора Python например /opt/python-3.7.4/bin/python
или для Windows c:\python-3.7.4\bin\python
Активация виртуального окружения:
# Для Linux $ source /path/to/myVenv/bin/activate # Для Windows > c:\myVenv\Scripts\activate
После активации виртуального окружения вы можете, без каких либо ограничений и без sudo
, пользоваться pip
не боясь причинить ущерб системе. Таких виртуальных сред может быть бесконечно много и все они будут изолированы как друг от друга, так и от системы. Каждая виртуальная среда может иметь свою собственную версию Python и может иметь собственный независимый набор установленных пакетов.
Для выхода из виртуального окружения просто наберите deactivate
$ deactivate
Для удаления virtualenv, просто удалите директорию с виртуальным окружением
$ rm -r /path/to/myVenv
Использование:
virtualenv [ОПЦИИ] ENV_DIR
Опции:
-version
: показывает установленную версию virtualenv-h
, --help
: показать это справочное сообщение и выйти-v
, --verbose
: увеличивает вывод информации.-q
, --quiet
: уменьшает вывод информации.-p PYTHON_EXE
, --python=PYTHON_EXE
: используемый интерпретатор Python, например, --python=/opt/python-3.7.4/bin/python будет использовать интерпретатор из директории /opt/python-3.7.4/bin/python для создания новой среды. По умолчанию используется интерпретатор, с которым был установлен virtualenv.--clear
: очищает установку, что бы начать с нуля.--system-site-packages
: передает виртуальной среде доступ к глобальным пакетам.--always-copy
: копирует файлы, а не символические ссылки.--relocatable
: делает СУЩЕСТВУЮЩУЮ среду virtualenv перемещаемой. Это исправляет сценарии и делает все файлы .pth относительными.--unzip-setuptools
: разархивирует Setuptools при установке.--no-setuptools
: не устанавливает setuptools в новом virtualenv.--no-pip
: не устанавливает pip в новом virtualenv.--extra-search-dir=DIR
: каталог для поиска дистрибутивов pip. Эту опцию можно указывать несколько раз.--prompt=PROMPT
: предоставляет альтернативный префикс приглашения для этой среды.--download
: загружает предустановленные пакеты из PyPI.--no-download
: не загружает предустановленные пакеты из PyPI.--no-site-packages
: РЕКОМЕНДУЕТСЯ. Отсутствие доступа к пакетам переносимого Python в виртуальное окружение, теперь является поведением по умолчанию.