Рубріки: Основи

Модуль venv у Python: як встановити та налаштувати віртуальне середовище

Дмитро Сімагін

При розробці програми на мові Python часто виникає потреба в створенні ізольованого або віртуального середовища. Раніше це робили за допомогою інструменту virtualenv. Починаючи з версії Python 3.3, він входить у стандартну бібліотеку, виконуючи ті самі функції в модулі venv.

Сьогодні ми розглянемо, які переваги дає розробнику модуль venv, як з ним правильно працювати і чим він відрізняється від virtualenv.

Навіщо в Python потрібне віртуальне середовище

Згідно з офіційною документацією 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

 

Робота у віртуальному середовищі Python

Якщо активація пройшла успішно, то на початку рядка терміналу з’явиться назва віртуального середовища. У нашому випадку це 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

  • –symlinks: Використовує для збереження місця символічні посилання для файлів Python.
  • –copies: Копіює файли Python у віртуальне середовище.

Приклад із використанням символічних посилань:

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 копіюються в середовище.

Як налаштувати віртуальне середовище в 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 і virtualenv?

Крім вбудованого модуля venv, в екосистемі Python є альтернативні інструменти для створення та роботи з віртуальними середовищами. Найбільш відомий серед них називається virtualenv.

По суті virtualenv — це просто застаріла версія venv. Але він має кілька плюсів: підтримує більше опцій і може використовуватися зі старими версіями Python. Встановлення virtualenv відбувається за командою:

pip install virtualenv

 

Створення віртуального середовища з virtualenv та додатковими параметрами:

virtualenv ourenv --python=python3.8 --always-copy

 

Висновок

Вміння створювати віртуальне (ізольоване) середовище за заданими параметрами дає можливість Python-розробнику більше гнучкості у налаштуванні оточення під вимоги проекту. Застосовуючи різні опції модуля venv або інші інструменти, можна забезпечити кращу ізоляцію та керованість проекту. Це стане важливим аспектом роботи програміста на Python, особливо при одночасної або командній роботі над кількома проектами.

Останні статті

Більше 8 млрд грн податків. Стільки сплатили резиденти Дія.City в І кварталі 2025 року

Резиденти Дія.City сплатили до бюджету понад 8 млрд грн податків в І кварталі 2025 року.…

18.04.2025

Китайських офісних працівників закликають менше працювати. Це має допомогти місцевій економіці

У Китаї закликають офісних працівників не працювати надто багато — держава сподівається, що вільний час…

18.04.2025

ChatGPT значно покращив пошук місць по фото. Це посилює проблеми конфіденційності

Експерти звертають увагу на тривожну тенденцію: люди все частіше використовують ChatGPT, щоб визначити місцезнаходження, зображене…

18.04.2025

Середовище розробки IntelliJ IDEA оновлено до версії 2025.1

Компанія JetBrains випустила нову версію мультимовного середовища розробки IntelliJ IDEA 2025.1. Оновлена IDE отримала численні…

18.04.2025

Discord впроваджує функцію сканування обличчя для перевірки віку користувачів

Платформа обміну миттєвими повідомленнями Discord впроваджує функцію перевірки віку за допомогою сканування обличчя. Зараз вона…

18.04.2025

Wikipedia випустила спеціальний датасет, щоб відволікти увагу ботів

Wikipedia намагається захистити себе від тисяч різноманітних ботів-скрейперів, які сканують дані цієї платформи для навчання…

18.04.2025