Python Virtual Environments и Packages: venv и requirements.txt

Введение в Virtual Environments

Если вы работали с несколькими проектами, в которых использовался Python, то наверняка вы встречались с проблемой поломки одного из проекта, потому что обновленная версия библиотеки для другого проекта, не применима для текущего. Т.е. если вы работаете с Python и не используете miniconda или anaconda, то установка и обновление библиотек python постоянно ломает ваши проекты. Эта проблема называется «Ад зависимостей».

Поэтому лучшим подходом будет создавать для каждого отдельного проекта свою среду. В этой статье будет рассмотрена библиотека venv для настройки Virtual Environment для Windows.

Виртуальная среда — это способ Python для разделения зависимостей между проектами.

Создание виртуальной среды — venv в Windows

venv -это пакет, поставляемый с Python 3.

venv (для Python 3) позволяет управлять отдельными установками пакетов для разных проектов. По сути, venv позволяет вам создавать «виртуальную» изолированную установку Python и устанавливать пакеты в эту виртуальную установку. При переключении проектов вы можете просто создать новую виртуальную среду и не беспокоиться о нарушении работы пакетов, установленных в других средах. При разработке приложений Python всегда рекомендуется использовать виртуальную среду.

Чтобы создать виртуальную среду, перейдите в каталог вашего проекта и запустите venv.

python3 -m venv venv

или

python -m venv venv

venv создаст виртуальную установку Python в директории venv.

Примечание: Вы должны исключить каталог виртуальной среды из своей системы управления версиями с помощью .gitignore.

Активация и деактивация виртуальной среды Python

Далее необходимо активировать виртуальную среду.

Для этого необходимо в консоли cmd запустить .\venv\Scripts\activate или файл .\venv\Scripts\activate.bat, или .\venv\Scripts\Activate.ps1.

Префикс вашего рабочего каталога изменится (выделил желтым — venv)

Пока ваша виртуальная среда активирована, pip будет устанавливать пакеты в эту конкретную среду, и вы сможете импортировать и использовать пакеты в своем приложении Python.

Установка пакетов в виртуальную среду

Пример:

pip install requests

pip позволяет вам указать, какую версию пакета установить, используя спецификаторы версии. Например, чтобы установить определенную версию requests:

pip install requests==2.18.4

Как сохранить пакеты в файл requirements.txt

Pip может экспортировать список всех установленных пакетов и их версий с помощью freeze команды: pip freeze > requirements.txt.

Будет выведен список спецификаторов пакетов, таких как:

backports.entry-points-selectable==1.1.0
certifi==2021.5.30
charset-normalizer==2.0.3
distlib==0.3.2
filelock==3.0.12
idna==3.2
platformdirs==2.0.2
requests==2.26.0
six==1.16.0
urllib3==1.26.6
virtualenv==20.6.0

Имейте в виду, что в этом случае в файле requirements.txt будут перечислены все пакеты, которые были установлены в виртуальной среде, независимо от того, откуда они пришли.

Установить пакеты из файла requirements.txt

pip install -r requirements.txt

Как запустить скрипт Python в виртуальной среде. Пример автоматизации с помощью cmd

Для того, чтобы запустить скрипт, достаточно внутри директории с проектом (со средой) запустить команду:

"D:\#python#\#env\flask-app\venv\Scripts\python.exe" "D:\#python#\#env\flask-app\app.py"

Либо создать файл cmd с содержимым и запустить его:

@echo off
For /f "tokens=1-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)
rem %mydate%_%mytime%

"D:\#python#\#env\flask-app\venv\Scripts\python.exe" "D:\#python#\#env\flask-app\app.py" 2>"D:\#python#\#env\flask-app\log_get_data_log_%mydate%_%mytime%.log"

Создание виртуальной среды с помощью PyCharm

Для более легкой работы с виртуальными средами на Windows рекомендую установить PyCharm (Community Edition бесплатная). При создании проекта он сам создаст виртуальную среду и будет запускать файл в этой виртуальной среде:

Новую виртуальную среду можно создать с помощью разных инструментов в Pycharm:

  • Virtualenv
  • Pipenv
  • Poetry
  • Conda

Создание виртуальной среды в Ubuntu 20.14

С помощью пакета venv

# Создаем директорию проекта
mkdir flask-app

# Переходим внутрь директории
cd flask-app
# Создаем среду myenv
python3 -m venv myenv

# Активируем среду
source myenv/bin/activate

5 1 голос
Рейтинг статьи
Шамаев Иван
Разработчик аналитических решений QlikView/Qlik Sense/Power BI; Python Data Scientist; Разработчик интеграционных решений на PHP, Python, JavaScript.
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x