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

virtualenv — это инструмент для создания изолированной среды Python. У такой среды есть отдельна установка python, при ее использовании загруженные библиотеки недоступны другим. Можно сделать так, чтобы у этой среды не было доступа к глобальным библиотекам.

Virtualenv — простой и рекомендованный способ настройки среды Python.

Отличия virtualenv и venv

Venv — это пакет, который идет по умолчанию с Python 3.3+. В версии Python 2 его нет.

Virtualenv — более продвинутая библиотека. По ссылке можно ознакомиться с основными отличиями.

Виртуальную среду можно создать и с помощью venv, но все-таки рекомендуется установить и использовать virtualenv для полноценной работы.

Установка virtualenv с помощью pip

Для установки virtualenv с Python нужно использовать pip. Желательно предварительно обновить этот инструмент.

python -m pip install --upgrade pip

Или используйте python3, если python ссылается на 2 версию.

После обновления можно установить и virtualenv:

pip install virtualenv  # или pip3

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

1. Перейдите в директорию, в которой вы хотите создать виртуальную среду(например папка проекта).

~$ cd test
~/test$

2. Создайте виртуальную среду, при необходимости указав конкретную версию Python. Следующая команда создает virtualenv с именем venv_name и использует флаг -p, чтобы указать полный путь к версии Python:

virtualenv -p /usr/bin/python venv_name
# или
virtualenv venv_name

Назвать среду можно как угодно

После выполнения команды вы увидите логи:

Running virtualenv with interpreter /usr/bin/python
Already using interpreter /usr/bin/python
Using base prefix '/usr'
New python executable in /home/username/test/venv_name/bin/python
Installing setuptools, pip, wheel...
done.

Эта команда создает локальную копию среды. Работая с ней, важно не забывать об активации, чтобы использовались нужные версии конкретных инструментов и пакетов.

Если при установке возникла ошибка setuptools pip failed with error code 1` error, используйте следующую команду, чтобы решить проблему:

pip install --upgrade setuptools  # или pip3

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

source venv_name/bin/activate

После этого название текущей среды отобразится слева от символа ввода: (venv_name) username@desctop:~/test$

Теперь при установке любого пакета с помощью pip он будет размещаться в папках этой среды, изолированно от глобальной установки.

Деактивации virtualenv

После завершения работы деактивировать виртуальную среду можно с помощью команды deactivate.

Введите ее и приставка venv_name пропадет. Вы вернетесь к использованию глобально версии python.

Удаление виртуальной среды

Для удаления виртуальной среды достаточно просто удалить папку проекта. Для этого используется следующая команда:

rm -rf venv_name

Решение популярных ошибок

Ошибки при создании virtualenv. При попытке создать virtualenv с Python 3.7 могут возникнуть следующие ошибки.

AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'

OSError: Command /home/username/venv/bin/python3 -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip failed with error code 1

Для их исправления нужно добавить следующую строку в .bash_profile.

export LC_ALL="en_US.UTF-8"

Использование полного пути к виртуальной среде. Может быть такое, что при использовании команды virtualenv будет использована не та версия. Для решения проблемы нужно лишь задать полные пути как к virtualenv, так и к Python в системе.

А получить их можно с помощью этой команды:

/home/username/opt/python-3.8.0/bin/virtualenv -p /home/username/opt/python-3.8.0/bin/python3 venv

Максим
Я создал этот блог в 2018 году, чтобы распространять полезные учебные материалы, документации и уроки на русском. На сайте опубликовано множество статей по основам python и библиотекам, уроков для начинающих и примеров написания программ.
Мои контакты: Почта
admin@pythonru.comAlex Zabrodin2018-10-26OnlinePython, Programming, HTML, CSS, JavaScript