venv в Python: зачем нужен и как создать за минуту
Пошаговая инструкция: создаём изолированное окружение через встроенный модуль venv, ставим в него пакеты и не ломаем системный Python. Займёт минуту.

Что получится в конце
После этой инструкции у вас будет отдельная папка с изолированным Python-окружением для одного проекта. Пакеты, которые вы туда поставите через pip, не попадут в систему и не столкнутся с зависимостями других проектов. На всё уйдёт около минуты: одна команда на создание, одна на активацию.
Инструкция написана для Python 3.8+ на Windows, macOS и Linux. Модуль venv входит в стандартную библиотеку с Python 3.3, ставить ничего дополнительно не нужно.
Что нужно иметь до начала
- Python 3.8 или новее. Проверьте командой
python --version(на некоторых системах —python3 --version). Если версия ниже 3.3 —venvнедоступен, но такие версии давно сняты с поддержки. - Доступ к терминалу. Windows — PowerShell или cmd, macOS/Linux — любой терминал.
- Папку проекта. Окружение принято создавать внутри неё, рядом с кодом.
На Debian и Ubuntu модуль иногда вынесен в отдельный пакет. Если при создании увидите ошибку про ensurepip, поставьте его: sudo apt install python3-venv.
Зачем это вообще нужно
Без окружения все пакеты ставятся в один общий системный Python. Пока проект один — терпимо. Как только проектов становится два, начинается конфликт: одному нужен requests версии 2.28, другому — 2.31, а системный Python может держать только одну версию сразу.
Изолированное окружение — это не «правильный тон» и не бюрократия. Это способ не ловить ошибку «работало вчера, сегодня сломалось» после того, как другой проект обновил общую зависимость.
Второй мотив — не трогать системный Python руками. В Linux и macOS на нём часто завязаны утилиты ОС, и pip install в систему способен их сломать. В свежих сборках Python на такой случай даже включают защиту и отдают ошибку externally-managed-environment — намёк, что пора завести окружение.
Создаём окружение за минуту
Перейдите в папку проекта.
cd путь/к/вашему/проектуПроверка: команда
pwd(macOS/Linux) илиcdбез аргументов (Windows) покажет, что вы в нужной папке.Создайте окружение. Стандартное имя папки —
.venv(с точкой, чтобы не мозолила глаза):python -m venv .venvНа macOS/Linux, где команда называется
python3:python3 -m venv .venvПроверка: рядом с кодом появилась папка
.venvс подпапкамиbin(илиScriptsна Windows) иlib.Активируйте окружение. Команда зависит от системы и оболочки — смотрите таблицу ниже.
После активации в начале строки терминала появится
(.venv). Это и есть признак, что окружение включено.Проверьте, что pip смотрит в окружение:
pip --versionВ выводе путь должен вести внутрь папки
.venv, а не в системный Python.
Команды активации по системам
| Система / оболочка | Команда активации |
|---|---|
| Windows, PowerShell | .venv\Scripts\Activate.ps1 |
| Windows, cmd | .venv\Scripts\activate.bat |
| macOS / Linux, bash или zsh | source .venv/bin/activate |
| Linux, fish | source .venv/bin/activate.fish |
Ставим пакеты и фиксируем список
С активированным окружением всё работает как обычно, только пакеты падают в .venv:
# установка одного пакета
pip install requests
# сохранить список зависимостей в файл
pip freeze > requirements.txt
# на другой машине — восстановить окружение
pip install -r requirements.txtФайл requirements.txt кладут в репозиторий, а саму папку .venv — нет. Добавьте её в .gitignore одной строкой: .venv/. Окружение у каждого своё, в репозитории ему не место.
Когда закончили работу, выйти из окружения можно командой deactivate в любой системе. Приставка (.venv) исчезнет.
Если не получилось
PowerShell: «выполнение сценариев отключено в этой системе». Windows по умолчанию блокирует запуск скриптов. Разрешите их для текущего пользователя:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned, подтвердите и активируйте окружение снова. Либо запускайте через cmd сactivate.bat.«The virtual environment was not created successfully because ensurepip is not available». Ubuntu/Debian: доустановите пакет
sudo apt install python3-venvи повторите создание.«python: command not found». В системе Python зовётся
python3. Используйте его, или проверьте, что Python вообще установлен и добавлен в PATH.После активации
pip installвсё равно ставит в систему. Проверьтеpip --version: если путь ведёт не в.venv, окружение не активировано. Частая причина — новый терминал, где активацию нужно выполнить заново.Перенесли папку проекта — окружение перестало работать. Пути внутри
.venvабсолютные. При переносе проще удалить папку и создать окружение заново изrequirements.txt, чем чинить.
Что делать дальше
Заведите привычку: новый проект — сразу python -m venv .venv и .venv/ в .gitignore. Если проектов много и переключаться между версиями Python приходится часто, посмотрите в сторону инструментов, которые управляют окружениями и зависимостями поверх venv — например, uv или Poetry. Но начинать стоит именно со встроенного venv: он ничего не требует ставить и работает везде, где есть Python.
Логотип и фирменный стиль: Три концепции разного характера, палитра с обоснованием, проверка на читаемость в малом размере и в один цвет.
Спросить за 60 ₽Источники: venv — Creation of virtual environments, официальная документация Python, Installing packages using pip and virtual environments — Python Packaging User Guide
Частые вопросы
У меня другая версия Python — venv точно есть?
Чем venv отличается от virtualenv?
Нужно ли коммитить папку .venv в git?
Что будет, если я забыл активировать окружение и поставил пакет?
Можно ли иметь несколько окружений для одного проекта?
Почему при pip install в систему я вижу ошибку externally-managed-environment?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.