Сообщить об ошибке.

Установка и использование модуля virtualenv для Python

В материале рассматривается установка модулем 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.

Использование 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.

Использование:

virtualenv [ОПЦИИ] ENV_DIR
  • где 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 в виртуальное окружение, теперь является поведением по умолчанию.