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, вони будуть встановлюватися глобально, а не в ізольоване середовище.


Мітки: