Глиф Учебники

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

Справочник · Python · 2 минуты чтения

Создать окружение в папке проекта и включить его. В командной строке Windows, открытой в папке проекта (как её открыть — в справке Как запустить файл .py):

Командная строка
python -m venv .venv
.venv\Scripts\activate

В Linux и macOS:

Bash
python3 -m venv .venv
source .venv/bin/activate

После включения в начале строки терминала появляется (.venv). Теперь команды python и pip относятся к окружению, и библиотеки ставятся в него:

Командная строка
python -m pip install requests

Выключить окружение — команда deactivate.

Зачем это нужно

Виртуальное окружение — отдельная папка (здесь .venv) со своей копией Python и своими библиотеками. Каждому проекту — своё окружение:

Имя .venv — общепринятое, редакторы находят такую папку сами. Можно назвать и иначе — тогда подставьте своё имя во все команды.

Список библиотек проекта

Командная строка
python -m pip freeze > requirements.txt
python -m pip install -r requirements.txt

Первая команда записывает библиотеки окружения с версиями в файл requirements.txt, вторая ставит их по этому файлу — например, в новом окружении на другом компьютере.

PowerShell: «выполнение сценариев отключено в этой системе»

В PowerShell окружение включает скрипт .venv\Scripts\Activate.ps1, а Windows по умолчанию может запрещать запуск скриптов. Самое простое — включать окружение из обычной командной строки cmd командой .venv\Scripts\activate. Или разрешить скрипты только для своей учётной записи:

PowerShell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Эта команда ослабляет защиту Windows: после неё PowerShell запускает любые скрипты, созданные на компьютере, а скачанные из интернета — только подписанные. Не меняйте настройку, если компьютер не ваш (например, школьный или рабочий), — для этого есть cmd.

Окружение можно и не включать: программа запускается его Python напрямую — .venv\Scripts\python.exe main.py в Windows или .venv/bin/python main.py в Linux и macOS.

Ubuntu и Debian: ensurepip is not available

Если python3 -m venv .venv отвечает, что окружение не создано, потому что ensurepip is not available, в системе не хватает пакета для окружений. Поставьте его и создайте окружение заново:

Bash
sudo apt install python3-venv
python3 -m venv .venv

Окружение в редакторе

Подводные камни