Ошибка «не является внутренней или внешней командой»: причины и решение

Ошибка «"python" не является внутренней или внешней командой, исполняемой программой или пакетным файлом» появляется в командной строке Windows, когда система не может найти исполняемый файл введённой команды. Тот же текст выдаётся для git, node, ffmpeg, javac и любой другой утилиты, путь к которой командный интерпретатор не знает.

Механика проста: cmd.exe ищет введённое имя сначала среди встроенных команд (dir, cd, copy), затем в текущей папке, а после — во всех каталогах, перечисленных в системной переменной PATH. Если файл не найден ни в одном из этих мест, вы получаете именно это сообщение. Ниже разберём, как быстро определить причину и устранить её без переустановки системы.

Что означает эта ошибка и когда она возникает

Сообщение появляется в трёх типовых ситуациях. Первая — программа вообще не установлена на компьютере, и Windows честно сообщает, что такого файла не существует. Вторая — программа установлена, но её папка не добавлена в PATH, поэтому команда работает только из каталога установки. Третья — опечатка в имени команды или лишние кавычки, из-за которых интерпретатор воспринимает текст иначе.

Отдельный случай — команда работала вчера, а сегодня перестала. Обычно это следствие изменения переменных среды: установщик другой программы перезаписал PATH, либо переменную отредактировали вручную с ошибкой. Также ошибка возникает, если запустить командную строку до установки программы и не перезапустить её после: уже открытое окно cmd не подхватывает обновлённые переменные среды.

Шаг 1. Проверка опечаток и синтаксиса

Начните с самого простого. Убедитесь, что имя команды написано правильно: python, а не pyhton; ipconfig, а не ipconfing. Регистр букв в Windows не важен, а вот порядок символов — критичен.

  • 🔍 Проверьте, нет ли лишних пробелов в начале или конце команды.
  • 📋 Если путь к файлу содержит пробелы, заключите его целиком в кавычки: "C:\Program Files\App\app.exe".
  • ⌨️ Скопируйте имя команды из официальной документации, а не набирайте по памяти.
  • 🔄 Попробуйте сокращённый вариант, если он предусмотрен: например, py вместо python для лаунчера Python в Windows.

Если команда скопирована с веб-страницы, в неё могли попасть нестандартные символы — длинное тире вместо дефиса или «ёлочки» вместо прямых кавычек. Наберите команду вручную, чтобы исключить этот вариант.

Шаг 2. Проверка, установлена ли программа

Выполните поиск исполняемого файла вручную. Откройте «Проводник» и проверьте типичные каталоги установки: C:\Program Files, C:\Program Files (x86), а также папку пользователя C:\Users\Имя\AppData\Local\Programs. Для Python, например, файл python.exe часто лежит именно в последнем пути.

Быстрая проверка прямо из командной строки — команда where, которая ищет файл по тем же правилам, что и cmd:

where python

where git

Если в ответ вы видите путь к файлу — программа установлена и доступна, значит проблема в чём-то другом (например, в опечатке). Если выводится сообщение о том, что файлы не найдены, программу нужно установить либо искать её папку вручную.

📊 Где вы столкнулись с этой ошибкой?
При установке Python
При работе с Git
При запуске Node.js или npm
С другой программой

Шаг 3. Проверка и настройка переменной PATH

Чтобы увидеть текущее содержимое PATH, выполните:

echo %PATH%

Найдите в выводе папку с вашей программой. Если её там нет — добавьте. Для этого откройте Панель управления → Система → Дополнительные параметры системы → Переменные среды (либо нажмите Win + R и введите sysdm.cpl, затем вкладка «Дополнительно»). В списке системных или пользовательских переменных выберите Path и нажмите «Изменить», затем «Создать» и укажите полный путь к папке с исполняемым файлом — именно к папке, а не к самому exe-файлу.

☑️ Правильное добавление пути в PATH

Выполнено: 0 / 5
⚠️ Внимание: при редактировании PATH не удаляйте существующие строки и не вставляйте путь поверх чужих значений. Потеря системных путей вроде C:\Windows\System32 сломает работу многих стандартных команд. Перед правкой скопируйте текущее значение переменной в текстовый файл как резервную копию.

После любого изменения переменных среды необходимо закрыть и заново открыть окно командной строки — уже запущенные процессы не получают обновлённые значения PATH. Это самая частая причина, почему «я всё прописал, а ошибка осталась».

Шаг 4. Временное решение — запуск с полным путём

Если настраивать PATH пока не хочется, вызовите программу по полному адресу. Перетащите exe-файл из Проводника прямо в окно командной строки — путь подставится автоматически, либо укажите его вручную:

"C:\Users\Имя\AppData\Local\Programs\Python\Python312\python.exe" --version

Также можно временно добавить папку в PATH только для текущего сеанса командной строки:

set PATH=%PATH%;C:\путь\к\папке

Этот вариант удобен для разовой проверки: после закрытия окна cmd изменение исчезнет, а системные настройки останутся нетронутыми. Если с полным путём программа запускается, а по короткому имени — нет, диагноз подтверждён: дело именно в PATH.

Типичные причины ошибки для популярных программ

У разных инструментов свои особенности установки, которые влияют на появление ошибки:

ПрограммаЧастая причинаЧто проверить
PythonПри установке не отмечена галочка «Add Python to PATH»Переустановить с отмеченной опцией или добавить папку вручную
GitВыбран вариант использования только из Git BashПереустановить, выбрав «Git from the command line»
Node.js / npmОкно cmd открыто до завершения установкиПерезапустить терминал
Java (javac)Установлена JRE без JDK либо не настроен путь к binУстановить JDK и добавить папку bin в PATH
ffmpegАрхив распакован, но папка bin не добавлена в PATHДобавить путь к bin вручную
⚠️ Внимание: скачивайте установщики только с официальных сайтов проектов. Сторонние «сборки» могут содержать устаревшие версии или вредоносный код, а нестандартная структура папок в них усложнит настройку PATH.

Если ошибка появляется в пакетном файле или у другой учётной записи

Когда команда работает вручную, но «не является внутренней или внешней» при запуске из .bat-файла или планировщика задач, причина обычно в контексте выполнения. Скрипт может запускаться от имени другого пользователя или системной учётной записи, у которой свой набор переменных среды. Пользовательская переменная Path при этом недоступна — используйте системную или указывайте в скрипте полные пути к исполняемым файлам.

Ещё один нюанс — относительные пути внутри bat-файла считаются от текущего рабочего каталога, который при запуске через планировщик может отличаться от папки скрипта. Надёжнее задавать в начале файла явный переход:

cd /d "%~dp0"

Эта строка переводит рабочий каталог в папку, где лежит сам bat-файл, независимо от того, откуда он был вызван.

Чем PATH пользователя отличается от системного PATH

Windows объединяет обе переменные: сначала идут каталоги из системного Path, затем — из пользовательского. Системный Path действует для всех учётных записей компьютера, пользовательский — только для текущей. Если программой пользуются несколько пользователей или она запускается службами, добавляйте путь в системную переменную (требуются права администратора).

Когда ничего не помогает

Если путь добавлен, терминал перезапущен, а ошибка сохраняется, проверьте следующее. Во-первых, не редактировали ли вы PATH с ошибкой: лишняя точка с запятой подряд или незакрытая кавычка могут «обрезать» часть переменной. Во-вторых, убедитесь, что обращаетесь к той разрядности программы, которая установлена, и что сам exe-файл действительно существует по указанному пути — иногда установка прерывается, и папка остаётся пустой или неполной.

В крайнем случае выполните чистую переустановку программы с официального установщика, внимательно читая экраны мастера: многие из них предлагают автоматически прописать PATH, и эту опцию легко пропустить. После установки откройте новое окно командной строки и сразу проверьте команду с ключом версии, например python --version или git --version.

⚠️ Внимание: не копируйте чужие exe-файлы в C:\Windows\System32 ради «быстрого исправления» — так делают в сомнительных инструкциях из интернета. Это засоряет системный каталог, создаёт конфликты версий и потенциально опасно. Правильный способ — настройка PATH.

Часто задаваемые вопросы

Почему команда работает в PowerShell, но не работает в cmd?

Обычно дело в том, что одно из окон было открыто до установки программы или изменения PATH, а другое — после. Закройте оба терминала и откройте заново. Также проверьте, не используете ли вы алиас, который существует только в профиле PowerShell.

Как проверить, что путь добавлен в PATH правильно?

Откройте новое окно командной строки и выполните echo %PATH% — ваша папка должна присутствовать в списке. Затем выполните where имя_команды: если утилита выводит полный путь к exe-файлу, настройка прошла успешно.

Нужно ли перезагружать компьютер после изменения PATH?

Для командной строки достаточно закрыть и снова открыть окно терминала. Перезагрузка может потребоваться только для программ и служб, которые были запущены до изменения переменных и не перечитывают окружение в процессе работы.

Ошибка возникает для встроенных команд вроде ping или ipconfig — в чём дело?

Это признак повреждённой переменной PATH: из неё пропал системный каталог C:\Windows\System32. Откройте настройку переменных среды и верните этот путь в системный Path, после чего перезапустите командную строку.

Можно ли исправить ошибку без прав администратора?

Да. Добавьте путь в пользовательскую переменную Path вместо системной — для этого права администратора не требуются. Команда будет работать под вашей учётной записью, но не под другими пользователями компьютера.