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

Модуль 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, особливо при одночасної або командній роботі над кількома проектами.

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

Microsoft оприлюднила системні вимоги до ігрових ПК на Windows 11

Microsoft вперше опублікувала детальні системні вимоги до ігрових ПК під Windows 11, розділивши їх на…

15.12.2025

За три місяці в Україні вдвічі зросла кількість miltech-вакансій. Але без віддаленої роботи

За останній квартал в Україні вдвічі збільшилась кількість miltech-вакансій. Зараз на Djinni розміщено 360 вакансій…

15.12.2025

В Android 17 з’явиться функція блокування окремих програм

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

15.12.2025

Українська освіта не встигає реагувати на дефіцит інженерів у DefenceTech — дослідження ITExpert

Навіть приріст у +82% заяв на окремі технічні спеціальності не покриває потреби ринку. На окремі…

15.12.2025

У Чернівцях судять студента-програміста КПІ, який зламав Netflix з метою продажу чужих акаунтів

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

15.12.2025

«Великий стрибок у програмуванні»: експерти поділились враженнями від GPT-5.2

Реакція експертів на нову LLM-модель GPT-5.2 від OpenAI, малює двояку картину: реліз названо великим кроком…

15.12.2025