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

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

Представьте, что у каждого проекта на Python есть собственное личное рабочее пространство на вашем компьютере. Это и есть виртуальное окружение: изолированное место для запуска и тестирования проекта.

Зависимости каждого проекта остаются внутри него, поэтому они не мешают другим проектам и основной установке Python.

Каждое окружение можно представить как отдельную коробку. Каждая коробка:

  • Имеет собственный интерпретатор Python
  • Содержит собственный набор установленных пакетов
  • Изолирована от всех других виртуальных окружений
  • Может использовать не ту версию пакета, что другая коробка

Зачем это нужно? Виртуальные окружения:

  • Не дают проектам конфликтовать из-за версий пакетов
  • Упрощают перенос и воспроизведение проекта
  • Сохраняют системную установку Python в порядке
  • Позволяют тестировать с несколькими версиями Python

Создание виртуального окружения

В Python уже есть нужный для этого инструмент: встроенный модуль venv.

Чтобы создать окружение, откройте командную строку, перейдите в папку, в которой должен находиться ваш проект, и введите эту команду:

Затем Python создаст окружение за вас — в новой папке «myfirstproject» с вложенными папками и файлами.

main.py
python -m venv myfirstproject

Активация виртуального окружения

Окружение ничего не делает, пока его не активируют, и как раз для этого нужна эта команда:

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

main.py
# Windows:
myfirstproject\Scripts\activate

# macOS/Linux:
source myfirstproject/bin/activate

Установка пакетов

Пока окружение активно, вы можете с помощью pip устанавливать пакеты прямо в него.

Попробуем это на примере пакета с именем «cowsay»:

main.py
pip install cowsay

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

Теперь, когда «cowsay» доступен в окружении, давайте заставим его нарисовать говорящую корову.

Для начала создайте файл с именем test.py. Подойдёт любое место на вашем компьютере; в этом уроке он лежит рядом с папкой myfirstproject, а не внутри неё.

Откройте файл и добавьте в него строки ниже:

Затем, пока окружение всё ещё активно, запустите файл:

Пример

Содержимое файла test.py:

Prompt
Напишите программу на Python, которая использует пакет cowsay. Импортируйте cowsay и с помощью cowsay.cow() выведите «Доброе утроооо!».
Вывод: полная программа на Python
main.py
python test.py

Деактивация виртуального окружения

Когда вы закончите работу, эта команда деактивирует окружение:

После этого вы вернётесь в обычную командную строку.

Если запустить test.py отсюда, вне окружения, возникнет ошибка, потому что «cowsay» есть только внутри виртуального окружения.

Примечание: деактивация не удаляет myfirstproject. Активируйте его снова, и test.py запустится и снова покажет рисунок.

main.py
deactivate

Удаление виртуального окружения

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

Чтобы удалить окружение, достаточно удалить папку со всем содержимым — либо прямо в файловой системе, либо из командной строки:

main.py
# Windows:
rmdir /s /q myfirstproject

# macOS/Linux:
rm -rf myfirstproject