Python Virtual Environments и Packages: venv и requirements.txt

Введение в Virtual Environments

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

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

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

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

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

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

python3 -m venv env

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

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

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

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

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

Если вы хотите переключить проекты или иным образом покинуть виртуальную среду, просто запустите .\env\Scripts\deactivate.bat.

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

Пример:

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

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

python 1_get_data.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%

cd "D:\#python#\#env\yandex_metrika_data\"

python.exe "D:\#python#\#env\yandex_metrika_data_get_data.py" 2>"D:\#python#\#env\yandex_metrika_data\log_get_data_log_%mydate%_%mytime%.log"

 

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