Virtualenv – інструмент, що дає змогу створювати окреме ізольоване середовище для кожного проекту python, завдяки чому вирішується конфліктність між залежностями і їх версіями. Якщо проекту А потрібна версія стороннього пакету 1.0, а проекту Б версія 2.0, працюючи в ізольованих середовищах створених за допомогою virtuaienv, кожен працює зі своєю версією ніяк не перешкоджаючи іншому.
Встановлення virtualenv на ubuntu 20.04
Перевірити наявність та версію python:
python3 -VВ моєму випадку відповідь:
Python 3.8.10Для встановлення virtualenv знадобиться менеджер пакетів для python pip3:
sudo apt upgrade
sudo apt install python3-pipПеревірити чи все ок:
pip3 --versionВідповідь:
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)За допомогою pip встановити virtualenv:
pip3 install virtualenvПеревірити наявність та версію:
virtualenv --versionВідповідь:
virtualenv 20.21.0 from /usr/local/lib/python3.8/dist-packages/virtualenv/__init__.pyСтворення ізольованого середовища за допомогою virtualenv
Створити директорію та перейти в неї:
mkdir test
cd testСтворити віртуальне середовище:
virtualenv envВідповідь:
created virtual environment CPython3.8.10.final.0-64 in 99ms
......Після цього в директорії test повинна створитися папка env (сама назва середовища опціональна, її можна задати будь-яку, під час виконання команди). Перед тим, як почати працювати в середовищі, його потрібно активувати за допомогою команди:
source env/bin/activate
Якщо все гаразд повинен з’явитися префікс з назвою середовища в дужках, в цьому випадку (env)
Керування пакетами в середовищі virtualenv
Після активації середовища, можна встановлювати/видаляти в ньому пакети за допомогою менеджера пакетів pip. Наприклад встановимо пакет requests та перевіримо список встановлених в середовищі пакетів:
pip install requests
pip listРезультат:
Package Version
------------------ ---------
certifi 2022.12.7
charset-normalizer 3.1.0
idna 3.4
pip 23.1
requests 2.28.2
setuptools 67.6.1
urllib3 1.26.15
wheel 0.40.0Для видалення пакету, наприклад все того ж requests, потрібно виконати команду:
pip uninstall requestsТакож є можливість збереження списку пакетів для швидкого їх встановлення при перенесенні проекту. Збережемо встановлені пакети в файл requirements.txt та подивимось вміст файлу після збереження:
pip freeze > requirements.txt
cat requirements.txtРезультат:

Для встановлення пакетів вказаних в requirements.txt потрібно виконати команду:
pip install -r requirements.txtДеактивація середовища virtualenv
Для виходу із середовища достатньо виконати команду deactivate:

Зникнення префіксу (env) свідчить про те, що ми вийшли з середовища. Тепер при встановленні пакетів через pip, вони будуть встановлюватися глобально, а не в ізольоване середовище.