Виртуальное окружение
Виртуальное окружение (virtual environment) — это инструмент, позволяющий создавать изолированные среды для разработки и запуска приложений с помощью конкретной версии языка программирования и его библиотек.
Это полезно, когда у тебя есть несколько проектов с разными зависимостями, и ты хочешь, чтобы каждый проект использовал свои собственные версии библиотек, не конфликтуя с версиями, используемыми другими проектами.
Создание виртуального окружения позволяет установить конкретные версии библиотек и пакетов, не влияя на глобальное окружение. Также, виртуальное окружение может быть использовано для тестирования приложений в чистом окружении или для воссоздания конкретной среды, в которой разработано и тестируется код.
В Python для создания виртуального окружения можно использовать встроенный модуль «venv». Кроме того, есть также сторонние инструменты, такие как «virtualenv» и «conda», которые предоставляют более широкие возможности для управления виртуальными окружениями.
Не хочешь траблов с зависимостями? Тогда запомни: один проект — одно виртуальное окружение.
Установка
Мы будем ставить виртуальное окружение с помощью стандарнтой питоновкой библиотеки venv. Перейди в директорию своего проекта и выполни незамысловатую команду.
python -m venv venv
-m— флаг указывающий интерпретатору, что нужно запустить библиотеку venv, как исполняемый модульvenv— пакет из стандартной библиотеки Python для создания виртуального окруженияvenv— название директории, где будут храниться все библиотеки использующиеся в проекте. Можешь назвать папку как угодно, но лучше оставить venv — это общепринятое имя.
В результате выполнения команды будет создан каталог venv/ содержащий копию интерпретатора Питона и другие вспомогательные файлы.
Если используешь Git, то не забудь добавить директорию в файл .gitignore. Незачем, чтобы файлы окружения занимали место в репозитории, ведь всегда актуальные библиотеки можно скачать из всемирной паутины под названием интернет.
Использование
Сейчас перед каждым запуском кода, или когда захочешь установить новую библиотеку нужно активировать созданное окружение.
Активация
- Windows
- Linux
venv\Scripts\activate
source venv/bin/activate
Приставка source выполняет bash-скрипт без запуска дополнительного bash-процесса.
Выключение
Захотел использовать для запуска кода глобальный интерпретатор установленный в операционной системе? — деактивируй виртуальное окружение.
deactivate
Актуализация
Когда ты захочешь развернуть свой проект на другом компьютере, то тебе нужно будет установить там идентичные библиотеки, как в существующем виртуальном окружении. Для этого тебе пригодится файлик с названиями всех библиотек и их версиями. У такого файла есть общепринятое название: requirement.txt, а создать его можно с помощью одной команды.
pip freeze > requirement.txt
pip freeze— команда выводящая список всех библиотек и их версии>— символ говорящий о том, что мы хотим сохранить вывод в файлrequirement.txt— название файла
Восстановление
Скопировал репозиторий на сервер и хочешь запустить проект? — Не забудь установить все необходимые зависимости.
pip install -r requirement.txt
pip install— команда запускающая установку пакета-r— флаг заставляющий Питон перебирать каждую строку из файла и использовать её в качестве названия пакета для установкиrequirement.txt— название файла, где хранится список всех необходимых для установки пакетов
Удаление
Деактивируй виртуальное окружение deactivate, а затем удали директорию командой rm -Rf venv.