Visual Studio Code — Виртуальное окружение (venv)

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

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

Установка и настройка виртуального окружения для каждого проекта — это норма жизни и современный стандарт, без этого разработчик — не разработчик.В уроке «Клонирование репозитория, отображение, добавление файлов» вы создали директорию Dev/backend_test_homework. Для тренировки установите виртуальное окружение для проекта в этой папке. Запустите редактор Visual Studio Code и через меню «Файл» / «Открыть директорию» откройте папку Dev/backend_test_homework. Запустите терминал в VSCode, удостоверьтесь, что вы работаете из директории backend_test_homework (если вы работаете под Windows — убедитесь, что в терминале запущен Git 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:

# выполнить инструкции из файла activate во вложенной папке venv/Scripts
...Dev/backend_test_homework$ source venv/Scripts/activate 

В macOS или Linux:

# выполнить инструкции из файла activate во вложенной папке venv/bin
...Dev/backend_test_homework$ source venv/bin/activate 

При работе с проектом эти команды будут вам нужны постоянно. Запишите их в блокнотик, на стикер или просто запомните. В терминале появится уведомление о том, что вы работаете в виртуальном окружении: строка (venv) будет предварять все команды.

# Строка для ввода теперь будет выглядеть так: 
(venv) ...$

# В зависимости от настроек вашей системы, 
# строка ввода может выглядеть чуть иначе.
# Например, так:
(venv) username@computer-name /directory-name$
# username - имя пользователя
# computer-name - название компьютера
# /directory-name - текущая директория 

В дальнейшем курсе все команды, которые начинаются с (venv)...$, выполняйте с активированным виртуальным окружением. Магия виртуального окружения работает таким образом, что после его активации все вводимые команды будут связаны с выбранным окружением. Остановить работу виртуального окружения можно командой.

(venv)...$ deactivate 

При необходимости можно уничтожить виртуальное окружение, просто удалив папку /venv.





Комментарии: 1
  1. JustPale

    Для активации виртуального окружения в PowerShell Windows не нужна приставка source, свойственная для Linux, как указано в тексте. Вместо этого нужно просто написать директорию, предварительно перед этим изменив политику выполнения скриптов в PowerShell (Set-ExecutionPolicy Unrestricted)

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: