Ошибка «venv не является внутренней или внешней командой, исполняемой программой или пакетным файлом» появляется в командной строке Windows, когда пользователь вводит venv как самостоятельную команду — а такой утилиты в системе просто не существует. Модуль venv входит в состав Python и вызывается только через интерпретатор: python -m venv. Командная строка ищет исполняемый файл venv.exe в папках из переменной PATH, не находит его и выдаёт это сообщение.
Вторая частая ситуация — сам Python не установлен или его путь не прописан в PATH, и тогда похожая ошибка возникает уже на команду python. Ниже разберём, как отличить одну проблему от другой и пошагово устранить каждую.
Почему возникает ошибка
Текст «не является внутренней или внешней командой» — стандартный ответ интерпретатора cmd.exe, когда введённое слово не совпадает ни с одной встроенной командой и ни с одним исполняемым файлом в каталогах из PATH. Применительно к venv возможны три сценария.
- 🔧 Введена команда
venv myenvвместо правильнойpython -m venv myenv— самая частая причина. - 🐍 Python не установлен в системе, поэтому недоступен и модуль venv.
- 📁 Python установлен, но при установке не включена опция Add Python to PATH, и команда
pythonне распознаётся. - 🪟 Используется Python из Microsoft Store, который иногда перехватывает вызов и открывает магазин вместо запуска интерпретатора.
Определить свой сценарий можно за одну проверку: откройте командную строку и введите python --version. Если версия отобразилась — Python работает, и проблема только в синтаксисе команды. Если снова ошибка — начинайте с проверки установки и PATH.
Проверка установки Python и переменной PATH
Сначала убедитесь, что интерпретатор вообще доступен из командной строки. Выполните по очереди:
python --version
py --version
where python
Команда py — это официальный лаунчер Python для Windows, который часто работает даже тогда, когда python недоступен. Команда where python покажет, по каким путям система находит интерпретатор. Если py --version выводит версию, а python — нет, используйте лаунчер во всех дальнейших командах.
Если ни одна команда не сработала, проверьте PATH вручную. Откройте Параметры → Система → О системе → Дополнительные параметры системы → Переменные среды и посмотрите, есть ли в переменной Path пути вида C:\Users\Имя\AppData\Local\Programs\Python\Python3xx\ и подпапка Scripts\. Внесённые изменения начинают действовать только в новых окнах командной строки — уже открытые консоли нужно закрыть и открыть заново.
Правильное создание виртуального окружения
После того как Python отвечает на запрос версии, окружение создаётся одной командой. Перейдите в папку проекта и выполните:
cd путь\к\проекту
python -m venv venv
Здесь первое venv после -m — имя модуля, а второе — имя папки окружения, её можно назвать иначе, например .venv или env. Если в системе работает только лаунчер, замените начало команды на py -m venv venv. Процесс занимает от нескольких секунд до минуты: Python копирует интерпретатор и базовые файлы в новую папку.
☑️ Создание окружения без ошибок
Об успехе говорит появившаяся папка с подкаталогами Scripts и Lib. Если папка не создалась и появилось сообщение об ошибке — читайте его текст: часто там прямо указано, чего не хватает.
Активация окружения и связанные ошибки
Созданное окружение нужно активировать, и здесь тоже есть нюансы, зависящие от терминала. В cmd.exe используется одна команда, в PowerShell — другая:
| Терминал | Команда активации | Типичная проблема |
|---|---|---|
| cmd.exe | venv\Scripts\activate.bat | Неверный путь к папке окружения |
| PowerShell | venv\Scripts\Activate.ps1 | Запрет выполнения скриптов политикой |
| Git Bash | source venv/Scripts/activate | Обратные слэши вместо прямых |
| Linux/macOS | source venv/bin/activate | Папка bin вместо Scripts |
Признак успешной активации — имя окружения в скобках в начале строки приглашения, например (venv) C:\project>. После этого команды python и pip будут работать уже из окружения, а не из глобальной установки.
⚠️ Внимание: в PowerShell активация может завершиться ошибкой о запрете выполнения скриптов. Это следствие политики безопасности Execution Policy. Разрешить запуск локальных скриптов можно командой Set-ExecutionPolicy RemoteSigned -Scope CurrentUser — она не требует прав администратора и действует только для вашей учётной записи.
Ошибка «No module named venv» и неполная установка
Отдельный случай — когда python работает, но команда python -m venv venv сообщает, что модуль не найден. В Windows это встречается редко, поскольку установщик с python.org включает venv по умолчанию. Возможная причина — урезанная сборка Python или повреждённая установка.
Решение — запустить установщик Python повторно, выбрать Modify и убедиться, что компоненты, связанные с pip и стандартной библиотекой, отмечены. Заодно на этом шаге можно включить опцию добавления в PATH, если она была пропущена ранее. В дистрибутивах Linux модуль venv часто вынесен в отдельный пакет, который ставится через системный менеджер пакетов, — это нормальное поведение, а не поломка.
⚠️ Внимание: если Python был установлен из Microsoft Store, у него ограниченный доступ к части системных папок, что иногда мешает созданию окружений в защищённых каталогах вроде корня диска C. Создавайте проекты внутри папки пользователя или переустановите Python с официального установщика.
Чем venv отличается от virtualenv
venv — встроенный модуль стандартной библиотеки Python (начиная с версии 3.3), ничего дополнительно устанавливать не нужно. virtualenv — сторонний пакет, который ставится через pip и исторически поддерживал старые версии Python и дополнительные опции. Для большинства современных проектов достаточно штатного venv.
Когда ничего не помогло
Если после проверки PATH и переустановки ошибка сохраняется, действуйте методично. Полностью удалите Python через Параметры → Приложения, затем проверьте, что в PATH не осталось «мёртвых» путей к старым версиям, — они могут перехватывать вызов. После этого установите актуальную версию с официального сайта, обязательно отметив галочку Add python.exe to PATH на первом экране установщика.
Также проверьте, не запускаете ли вы команду из редактора с собственным терминалом, где PATH может отличаться от системного. Перезапуск редактора после изменения переменных среды обычно решает это расхождение.
Частые вопросы
Чем отличается «venv не является командой» от «python не является командой»?
Первая означает, что вы пытаетесь запустить venv напрямую — такой утилиты нет, используйте python -m venv. Вторая говорит о том, что система не находит сам интерпретатор: Python не установлен или его путь не добавлен в переменную PATH.
Можно ли создать окружение без активации?
Да. Активация лишь подставляет пути в текущую сессию терминала. Можно вызывать интерпретатор окружения напрямую по полному пути, например venv\Scripts\python.exe script.py — это удобно в скриптах автоматизации и планировщике задач.
Почему команда python открывает Microsoft Store?
Windows содержит заглушку-перенаправление на магазин для команды python. Отключить её можно в Параметры → Приложения → Дополнительные параметры приложений → Псевдонимы выполнения приложения, выключив переключатели для python.exe и python3.exe, либо просто установив Python с официального сайта.
Нужно ли создавать новое окружение для каждого проекта?
Рекомендуется. Отдельное окружение изолирует зависимости: разные проекты могут требовать несовместимые версии одних и тех же библиотек, и общая установка рано или поздно приведёт к конфликтам.
Как удалить виртуальное окружение?
Достаточно удалить папку окружения обычным способом — никаких записей в реестре или системе оно не оставляет. Перед удалением убедитесь, что окружение деактивировано и его файлы не заняты запущенными процессами.