Модуль 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, особливо при одночасної або командній роботі над кількома проектами.
Favbet Tech – це ІТ-компанія зі 100% українською ДНК, що створює досконалі сервіси для iGaming і Betting з використанням передових технологій та надає доступ до них. Favbet Tech розробляє інноваційне програмне забезпечення через складну багатокомпонентну платформу, яка здатна витримувати величезні навантаження та створювати унікальний досвід для гравців.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: