Модуль venv у Python: як встановити та налаштувати віртуальне середовище
При розробці програми на мові Python часто виникає потреба в створенні ізольованого або віртуального середовища. Раніше це робили за допомогою інструменту virtualenv. Починаючи з версії Python 3.3, він входить у стандартну бібліотеку, виконуючи ті самі функції в модулі venv.
Сьогодні ми розглянемо, які переваги дає розробнику модуль venv, як з ним правильно працювати і чим він відрізняється від virtualenv.
Згідно з офіційною документацією Python, віртуальне середовище — це одноразове оточення, яке не реєструється в Git і встановлене поверх базового середовища Python. За потреби його можна ізолювати від пакетів: всіх або тих, які обрані програмістом.
Віртуальне середовище необхідне для зберігання інтерпретатора, бібліотек і двійкових файлів, які потрібні для підтримки проекту. Його зазвичай розміщують у каталозі проекту під ім’ям venv або .venv, чи в каталозі контейнера, якщо таких середовищ у проекті декілька.
Щоб створити віртуальне (ізольоване) середовище в Python, запустіть термінал і перейдіть до директорії, де міститься ваш проект. Після цього виконайте команду:
python -m venv ourenv
Назва ourenv — це назва вашого віртуального середовища. За бажанням ви можете вибрати будь-яке інше ім’я.
У Windows команда venv викликається ось так:
c:\>Python33\python -m venv c:\path\to\ourenv
Далі нам потрібно активувати середовище. Це робиться за допомогою команди:
myenv\Scripts\activate
Якщо активація пройшла успішно, то на початку рядка терміналу з’явиться назва віртуального середовища. У нашому випадку це ourenv. Далі потрібно встановити пакети. Для цього використовується команда pip. Як ви вже пам’ятаєте, оскільки ми працюємо в умовах віртуального середовища, пакети будуть встановлені лише в ньому:
pip install package_name
Завершивши роботу в проекті, потрібно деактивувати середовище. Це робиться простою командою deactivate.
Можливості модуля venv не обмежені лише створенням віртуального середовища. Виходячи з вимог проекту, ви можете додати до нього різні параметри та налаштування. Наприклад, можна обрати версію інтерпретатора Python:
/usr/bin/python3.8 -m venv ourenv
У цьому фрагменті коду /usr/bin/python3.8 є шляхом до обраної вами версії Python.
Також ви можете використовувати у вашому ізольованому оточенні параметр –-system-site-packages. Він відкриває доступ до глобально встановлених пакетів Python. Це може бути корисним, якщо є потреба використовувати певні пакети без їх повторної установки у віртуальному середовищі.
python -m venv ourenv --system-site-packages
Параметр –symlinks або –copies
Приклад із використанням символічних посилань:
python -m venv ourenv --symlinks
Приклад копіювання файлів:
python -m venv ourenv --copies
Параметр –clear
За допомогою цього параметра можна очистити існуюче віртуальне середовище перед його повторним створенням.
python -m venv ourenv --clear
Параметр –upgrade
Оновлює існуюче віртуальне середовище до актуальної версії Python.
python -m venv ourenv --upgrade
Приклад створення віртуального середовища з кількома параметрами
python3.9 -m venv ourenv --system-site-packages --copies
Тут ми створюємо ізольоване віртуальне оточення ourenv за версією Python 3.9, глобальні пакети та файли Python копіюються в середовище.
Для керування залежностями проекту потрібний файл requirements.txt. Завдяки йому набагато простіше відтворити середовище на інших комп’ютерах і системах. Щоб створити цей файл, після встановлення обраних пакетів у вашому ізольованому середовищі виконайте команду:
pip freeze > requirements.txt
Тепер встановимо залежність від requirements.txt. Для цього на іншому комп’ютері або іншому віртуальному середовищі введіть:
pip install -r requirements.txt
Ви можете обрати особливі змінні оточення для вашого ізольованого середовища. Це робиться шляхом додавання в скрипти активації файлу activate.bat в директорії Scripts.
set MY_VARIABLE=value
Якщо вам потрібні додаткові шляхи для пошуку модулів, то для цього змініть змінну оточення PYTHONPATH.
export PYTHONPATH=/path/to/my/modules:$PYTHONPATH
Ви можете помітно прискорити роботу з проектом, якщо навчитеся створювати ізольовані середовища за шаблоном. Це можна робити з усіма необхідними параметрами за допомогою скриптів Bash або PowerShell. Ось наочний приклад Bash-скрипту:
#!/bin/bash # Створення віртуального середовища з певною версією Python python3.9 -m venv myenv --system-site-packages --copies # Активація віртуального середовища source myenv/bin/activate # Встановленняа залежностей pip install -r requirements.txt
Все що вам потрібно, це зберегти цей скрипт під будь-якою назвою, наприклад, setup_env.sh, і зробити його виконуваним. Далі просто запустіть скрипт:
chmod +x setup_env.sh ./setup_env.sh
Крім вбудованого модуля venv, в екосистемі Python є альтернативні інструменти для створення та роботи з віртуальними середовищами. Найбільш відомий серед них називається virtualenv.
По суті virtualenv — це просто застаріла версія venv. Але він має кілька плюсів: підтримує більше опцій і може використовуватися зі старими версіями Python. Встановлення virtualenv відбувається за командою:
pip install virtualenv
Створення віртуального середовища з virtualenv та додатковими параметрами:
virtualenv ourenv --python=python3.8 --always-copy
Вміння створювати віртуальне (ізольоване) середовище за заданими параметрами дає можливість Python-розробнику більше гнучкості у налаштуванні оточення під вимоги проекту. Застосовуючи різні опції модуля venv або інші інструменти, можна забезпечити кращу ізоляцію та керованість проекту. Це стане важливим аспектом роботи програміста на Python, особливо при одночасної або командній роботі над кількома проектами.
Резиденти Дія.City сплатили до бюджету понад 8 млрд грн податків в І кварталі 2025 року.…
У Китаї закликають офісних працівників не працювати надто багато — держава сподівається, що вільний час…
Експерти звертають увагу на тривожну тенденцію: люди все частіше використовують ChatGPT, щоб визначити місцезнаходження, зображене…
Компанія JetBrains випустила нову версію мультимовного середовища розробки IntelliJ IDEA 2025.1. Оновлена IDE отримала численні…
Платформа обміну миттєвими повідомленнями Discord впроваджує функцію перевірки віку за допомогою сканування обличчя. Зараз вона…
Wikipedia намагається захистити себе від тисяч різноманітних ботів-скрейперів, які сканують дані цієї платформи для навчання…