Python venv: как создать и активировать виртуальное окружение
Автор: Казачкин Даниил Михайлович · Обновлено
Виртуальное окружение Python — отдельный каталог интерпретатора и установленных для проекта библиотек. В этом уроке вы создадите окружение, проверите его из терминала и IntelliJ…
Виртуальное окружение Python — отдельный каталог интерпретатора и установленных для проекта библиотек. В этом уроке вы создадите окружение, проверите его из терминала и IntelliJ IDEA, затем безопасно пересоздадите. Задача проверки проста: запуск программы и установка пакета должны обращаться к одному Python.
Что изолирует окружение
venv отделяет набор Python-пакетов; файлы проекта, процессы и сеть остаются обычными ресурсами операционной системы. Версию Python выбирают до создания окружения: запуск python3.13 -m venv .venv использует установленный Python 3.13, а не скачивает его. У команды python -m venv venv первое venv — имя стандартного модуля, второе — произвольное имя каталога. Мы используем .venv, чтобы отличать служебные файлы от исходников. Основные правила описаны в документации venv.
Создание в Linux, macOS и Windows
Создайте пустую папку weather-console и откройте в ней терминал. Для Linux/macOS:
python3 --version
python3 -m venv .venv
source .venv/bin/activateДля Windows PowerShell:
py -3 --version
py -3 -m venv .venv
.\.venv\Scripts\Activate.ps1Если используете cmd.exe, последняя команда будет .venv\Scripts\activate.bat. При нескольких установленных Python сначала проверьте выбранную версию. Если PowerShell запрещает выполнение скрипта активации, для этого занятия достаточно прямого запуска .\.venv\Scripts\python.exe: менять системную политику исполнения не требуется.
Доказательство правильного выбора Python
Сохраните рядом с .venv, а не внутри неё, файл probe.py:
import sys
from pathlib import Path
environment = Path(sys.prefix)
print("Окружение:", environment.name)
print("Изолировано:", sys.prefix != sys.base_prefix)
print("Python:", sys.executable)Запустите python probe.py в активированном терминале. Первые две строки должны быть Окружение: .venv и Изолировано: True; третья содержит реальный путь к интерпретатору. Запишите его. Теперь выполните deactivate и повторите опыт прямой командой .venv/bin/python probe.py в POSIX или .\.venv\Scripts\python.exe probe.py в PowerShell. Первые две строки останутся прежними.
Этот опыт проверяет результат, а не оформление приглашения терминала. Надпись (.venv) сама по себе не доказывает, какой исполняемый файл запустили alias, IDE или задача автоматизации.
Подключение существующего venv в IntelliJ IDEA
Нужен включённый Python plugin. Откройте File → Project Structure → SDKs, добавьте Python SDK с диска и выберите существующий интерпретатор: .venv/bin/python либо .venv\Scripts\python.exe. Назначьте SDK проекту или нужному модулю. Названия пунктов соответствуют документации IntelliJ IDEA; в другой версии расположение настроек может отличаться.
Запустите тот же probe.py кнопкой Run. Сравните sys.executable с записанным путём из терминала. Если пути различаются, исправьте SDK/Run Configuration, а не устанавливайте библиотеку второй раз наугад. Терминал IDE и Python SDK — разные настройки; активация в одном окне не перенастраивает все конфигурации запуска.
Удаление и пересоздание
deactivate завершает активацию в текущем shell, но оставляет каталог на диске. Перед удалением остановите программы, использующие окружение, сохраните зависимости и убедитесь, что probe.py и другие исходники находятся вне .venv. Проверьте наличие .venv/pyvenv.cfg.
Из папки учебного проекта удалите только выбранный каталог: rm -r -- .venv в Linux/macOS, Remove-Item -LiteralPath .venv -Recurse в PowerShell или rmdir /s .venv в cmd. Затем повторите создание. Если ранее был подготовлен requirements.txt, восстановите пакеты через Python нового окружения. Каталог окружения не переносите как замену описанию зависимостей и не добавляйте в Git; этот рабочий процесс разбирает руководство PyPA.
Практика: два независимых проекта
Повторите опыт в project-a и project-b. Сравните абсолютные пути двух интерпретаторов и убедитесь, что они различаются. Удалите окружение только в project-a: файл probe.py должен сохраниться, а прямой запуск Python из project-b — продолжить работу. После пересоздания первого окружения снова получите True. Так вы проверяете границы удаления на собственных учебных файлах.
Следующий шаг
После проверки окружения переходите к [практикумам по Python-пакетам](/lessons/python/python-package-practice): там выбранный интерпретатор используется для графики, документов и внешних библиотек.
Частые вопросы
Обязательно ли активировать окружение?
Нет. В скриптах удобно явно вызывать нужный Python; интерактивная активация сокращает команды. Сравните оба варианта на probe.py.
Что делать с ошибкой ensurepip при создании?
Проверьте установку Python и пакет поддержки venv вашей ОС. Дистрибутив может поставлять эту часть отдельно; повторная активация не исправляет незавершённое создание.
Почему Python 3 есть, а команда python3 не найдена?
Имена запуска зависят от ОС и установки. В Windows начните с py -3, в POSIX — с python3; подтверждайте версию выводом команды. Шаги Windows и IDEA проверены по документации; учебный пример исполнен в Linux с Python 3.13.