Перейти к основному содержимому

Виртуальное окружение

Виртуальное окружение (virtual environment) — это инструмент, позволяющий создавать изолированные среды для разработки и запуска приложений с помощью конкретной версии языка программирования и его библиотек.

Это полезно, когда у тебя есть несколько проектов с разными зависимостями, и ты хочешь, чтобы каждый проект использовал свои собственные версии библиотек, не конфликтуя с версиями, используемыми другими проектами.

Создание виртуального окружения позволяет установить конкретные версии библиотек и пакетов, не влияя на глобальное окружение. Также, виртуальное окружение может быть использовано для тестирования приложений в чистом окружении или для воссоздания конкретной среды, в которой разработано и тестируется код.

В Python для создания виртуального окружения можно использовать встроенный модуль «venv». Кроме того, есть также сторонние инструменты, такие как «virtualenv» и «conda», которые предоставляют более широкие возможности для управления виртуальными окружениями.

предупреждение

Не хочешь траблов с зависимостями? Тогда запомни: один проект — одно виртуальное окружение.

Установка​

Мы будем ставить виртуальное окружение с помощью стандарнтой питоновкой библиотеки venv. Перейди в директорию своего проекта и выполни незамысловатую команду.

python -m venv venv
  • -m — флаг указывающий интерпретатору, что нужно запустить библиотеку venv, как исполняемый модуль
  • venv — пакет из стандартной библиотеки Python для создания виртуального окружения
  • venv — название директории, где будут храниться все библиотеки использующиеся в проекте. Можешь назвать папку как угодно, но лучше оставить venv — это общепринятое имя.

В результате выполнения команды будет создан каталог venv/ содержащий копию интерпретатора Питона и другие вспомогательные файлы.

Если используешь Git, то не забудь добавить директорию в файл .gitignore. Незачем, чтобы файлы окружения занимали место в репозитории, ведь всегда актуальные библиотеки можно скачать из всемирной паутины под названием интернет.

Использование​

Сейчас перед каждым запуском кода, или когда захочешь установить новую библиотеку нужно активировать созданное окружение.

Активация​

venv\Scripts\activate

Выключение​

Захотел использовать для запуска кода глобальный интерпретатор установленный в операционной системе? — деактивируй виртуальное окружение.

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.