Виртуальное окружение Python
Представьте, что у каждого проекта на Python есть собственное личное рабочее пространство на вашем компьютере. Это и есть виртуальное окружение: изолированное место для запуска и тестирования проекта.
Зависимости каждого проекта остаются внутри него, поэтому они не мешают другим проектам и основной установке Python.
Каждое окружение можно представить как отдельную коробку. Каждая коробка:
- Имеет собственный интерпретатор Python
- Содержит собственный набор установленных пакетов
- Изолирована от всех других виртуальных окружений
- Может использовать не ту версию пакета, что другая коробка
Зачем это нужно? Виртуальные окружения:
- Не дают проектам конфликтовать из-за версий пакетов
- Упрощают перенос и воспроизведение проекта
- Сохраняют системную установку Python в порядке
- Позволяют тестировать с несколькими версиями Python
Создание виртуального окружения
В Python уже есть нужный для этого инструмент: встроенный модуль venv.
Чтобы создать окружение, откройте командную строку, перейдите в папку, в которой должен находиться ваш проект, и введите эту команду:
Затем Python создаст окружение за вас — в новой папке «myfirstproject» с вложенными папками и файлами.
python -m venv myfirstproject
Активация виртуального окружения
Окружение ничего не делает, пока его не активируют, и как раз для этого нужна эта команда:
После её выполнения приглашение командной строки изменится и покажет, в каком окружении вы теперь работаете.
# Windows:
myfirstproject\Scripts\activate
# macOS/Linux:
source myfirstproject/bin/activate
Установка пакетов
Пока окружение активно, вы можете с помощью pip устанавливать пакеты прямо в него.
Попробуем это на примере пакета с именем «cowsay»:
pip install cowsay
Использование пакета
Теперь, когда «cowsay» доступен в окружении, давайте заставим его нарисовать говорящую корову.
Для начала создайте файл с именем test.py. Подойдёт любое место на вашем компьютере; в этом уроке он лежит рядом с папкой myfirstproject, а не внутри неё.
Откройте файл и добавьте в него строки ниже:
Затем, пока окружение всё ещё активно, запустите файл:
Пример
Содержимое файла test.py:
Вывод: полная программа на Python
import cowsay
cowsay.cow("Доброе утроооо!")
python test.py
Деактивация виртуального окружения
Когда вы закончите работу, эта команда деактивирует окружение:
После этого вы вернётесь в обычную командную строку.
Если запустить test.py отсюда, вне окружения, возникнет ошибка, потому что «cowsay» есть только внутри виртуального окружения.
Примечание: деактивация не удаляет myfirstproject. Активируйте его снова, и test.py запустится и снова покажет рисунок.
deactivate
Удаление виртуального окружения
От виртуальных окружений также легко избавиться, если по какой-то причине одно из них вам больше не нужно. От него не зависят другие проекты, поэтому при удалении исчезают только модули и файлы, находящиеся внутри него.
Чтобы удалить окружение, достаточно удалить папку со всем содержимым — либо прямо в файловой системе, либо из командной строки:
# Windows:
rmdir /s /q myfirstproject
# macOS/Linux:
rm -rf myfirstproject