Содержание страницы
Введение в 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
1 Comment