Виртуальное окружение: venv
Как
правило, на компьютере программиста живёт сразу несколько проектов. Эти
проекты могли быть написаны в разное время и разными разработчиками.
Старым проектам нужны старые версии библиотек, новым — новые; библиотеки
время от времени обновляются, и часть кода оказывается несовместима с
новыми библиотеками. Как сделать, чтобы этот зоопарк мирно уживался?
Для решения этой проблемы были придуманы «виртуальные окружения». Это своего рода «изолированные территории», отдельные виртуальные загончики для проектов.
В
каждом загончике живёт один проект, и для него можно установить
собственные настройки: указать нужную версию Python, установить
необходимые библиотеки. Теперь можно одновременно работать со множеством
проектов, не переживая, что их зависимости будут мешать друг другу.

Создание виртуального окружения
Установка
и настройка виртуального окружения для каждого проекта — это норма
жизни и современный стандарт, без этого разработчик — не разработчик.
В уроке «Клонирование репозитория, отображение, добавление файлов» вы создали директорию
Dev/backend_test_homework
. Для тренировки установите виртуальное окружение для проекта в этой папке.Запустите редактор Visual Studio Code и через меню «Файл» / «Открыть директорию» откройте папку
Dev/backend_test_homework
. Запустите терминал в VSCode, удостоверьтесь, что вы работаете из директории
backend_test_homework
(если вы работаете под Windows — убедитесь, что в терминале запущен Git
Bash), — и выполните команду развёртывания виртуального окружения:Скопировать кодBASH...Dev/backend_test_homework$ python3 -m venv venv
# Python, запусти модуль venv, он установит виртуальное окружение.
# Назови это виртуальное окружение "venv", чтобы его можно было вызвать по имени.
# Имя можно задать любое, мы в примерах будем использовать "venv".
После выполнения этой команды в директории проекта появится папка
venv
(от virtual environment,
«виртуальное окружение»), в которой хранятся служебные файлы
виртуального окружения. В этой же директории будут сохраняться все
зависимости проекта. После создания виртуального окружения должна получиться такая структура:
Скопировать кодDev └── backend_test_homework ├── .git/ <-- папка, необходимая для работы git (скрытая, может быть не видна) ├── .gitignore <-- файл со списком файлов и папок, которые git не должен отслеживать ├── .vscode/ <-- папка с настройками vscode (опционально) ├── README.md <-- файл с описанием проекта ├── program.py <-- файл с вашей программой ├── pytest.ini <-- файл с настройкой тестов ├── test_program.py <-- файл с тестами └── venv/ <-- папка виртуального окружения
Запуск виртуального окружения проекта
Каждый
раз перед началом работы с проектом нужно запускать виртуальное
окружение. При активированном окружении проект будет работать внутри
собственного «загончика», где ему будет доступны его зависимости и
собственная версия Python.
Откройте терминал, убедитесь, что вы находитесь в корневой директории проекта, и активируйте виртуальное окружение.
В Windows:
Скопировать кодBASH# выполнить инструкции из файла activate во вложенной папке venv/Scripts
...Dev/backend_test_homework$ source venv/Scripts/activate
В macOS или Linux:
Скопировать кодBASH# выполнить инструкции из файла activate во вложенной папке venv/bin
...Dev/backend_test_homework$ source venv/bin/activate
При работе с проектом эти команды будут вам нужны постоянно. Запишите их в блокнотик, на стикер или просто запомните.
В терминале появится уведомление о том, что вы работаете в виртуальном окружении: строка
(venv)
будет предварять все команды.Скопировать кодBASH# Строка для ввода теперь будет выглядеть так:
(venv) ...$
# В зависимости от настроек вашей системы,
# строка ввода может выглядеть чуть иначе.
# Например, так:
(venv) username@computer-name /directory-name$
# username - имя пользователя
# computer-name - название компьютера
# /directory-name - текущая директория
В дальнейшем курсе все команды, которые начинаются с
(venv)...$
, выполняйте с активированным виртуальным окружением.Магия виртуального окружения работает таким
образом, что после его активации все вводимые команды будут связаны с
выбранным окружением.
Остановить работу виртуального окружения можно командой.
Скопировать кодBASH(venv)...$ deactivate
При необходимости можно уничтожить виртуальное окружение, просто удалив папку /venv.