PyInstaller is not recognized as an internal or external command: причины и решения

Ошибка «pyinstaller is not recognized as an internal or external command, operable program or batch file» появляется в командной строке Windows, когда система не может найти исполняемый файл PyInstaller по команде pyinstaller. Чаще всего причина одна из трёх: пакет не установлен в текущем окружении Python, папка Scripts не добавлена в переменную PATH, либо команда запускается из другого виртуального окружения, чем то, куда ставился пакет.

Хорошая новость: это не сбой самого PyInstaller, а проблема поиска файла. Ниже разберём, как быстро проверить установку, какие пути проверить в PATH и как запустить сборку, даже если ничего менять в системе не хочется.

Почему Windows не находит команду pyinstaller

Когда вы вводите команду в cmd или PowerShell, Windows ищет исполняемый файл в текущей папке и во всех каталогах, перечисленных в переменной окружения PATH. Если файл pyinstaller.exe там не находится, система выдаёт именно эту ошибку.

Типичные сценарии выглядят так:

  • 📦 PyInstaller вообще не установлен — команда pip install pyinstaller не выполнялась или завершилась с ошибкой.
  • 🗂️ Пакет установлен, но папка Scripts интерпретатора Python не добавлена в PATH.
  • 🐍 В системе несколько версий Python, и установка прошла в одну, а терминал использует другую.
  • 🧪 Используется виртуальное окружение (venv), которое не активировано в текущем окне терминала.
  • 👤 Пакет установлен с флагом --user, а пользовательский каталог скриптов отсутствует в PATH.
⚠️ Внимание: сообщение об ошибке одинаковое во всех этих случаях. Поэтому не стоит сразу переустанавливать Python — сначала определите, какой именно сценарий у вас, иначе проблема просто повторится.

Шаг 1. Проверьте, установлен ли PyInstaller

Первая проверка — спросить у самого pip, видит ли он пакет. Выполните в терминале:

pip show pyinstaller

Если пакет установлен, вы увидите информацию о версии и строку Location с путём к каталогу установки. Если выводится предупреждение вида «Package(s) not found», значит, PyInstaller в этом окружении отсутствует, и его нужно установить:

pip install pyinstaller

Обратите внимание на нюанс: если в системе несколько версий Python, надёжнее вызывать pip через конкретный интерпретатор, который используется для вашего проекта:

python -m pip install pyinstaller

Такая форма гарантирует, что пакет попадёт именно в тот Python, который запускается командой python. После установки проверьте доступность команды: pyinstaller --version. Если версия вывелась — проблема решена.

📊 Что стало причиной ошибки в вашем случае?
PyInstaller не был установлен
Папка Scripts не в PATH
Конфликт нескольких версий Python
Не активировано виртуальное окружение

Шаг 2. Запуск через python -m — быстрый обходной путь

Есть способ запустить PyInstaller, вообще не трогая PATH. Модуль можно вызвать напрямую через интерпретатор:

python -m PyInstaller your_script.py

Эта команда работает, если пакет установлен в том окружении, которое запускает python. Это удобная проверка: если python -m PyInstaller --version работает, а просто pyinstaller — нет, значит, пакет на месте, а проблема именно в PATH.

Шаг 3. Добавьте папку Scripts в PATH

Исполняемый файл pyinstaller.exe лежит в подкаталоге Scripts вашей установки Python. Типичные пути выглядят примерно так (точный путь зависит от версии Python и способа установки):

  • 📁 C:\Users\Имя\AppData\Local\Programs\Python\Python312\Scripts\ — стандартная установка для текущего пользователя.
  • 📁 C:\Users\Имя\AppData\Roaming\Python\Python312\Scripts\ — при установке пакетов с флагом --user.
  • 📁 C:\Python312\Scripts\ — при установке Python для всех пользователей в корень диска.

Чтобы найти точный путь, выполните pip show pyinstaller и посмотрите строку Location — каталог Scripts обычно находится рядом с site-packages. Далее откройте настройки переменных окружения Windows: нажмите Win, введите «Изменение системных переменных среды», откройте Переменные среды и добавьте найденный путь в переменную Path (лучше в пользовательский раздел).

⚠️ Внимание: после изменения PATH уже открытые окна командной строки изменений не увидят — обязательно закройте терминал и откройте его заново, иначе ошибка сохранится, хотя настройка выполнена верно.

☑️ Чек-лист исправления PATH

Выполнено: 0 / 4

Шаг 4. Виртуальные окружения и несколько версий Python

Если проект использует venv, PyInstaller нужно устанавливать внутри активированного окружения. Порядок действий такой: активируйте окружение (например, venv\Scripts\activate), затем выполните pip install pyinstaller и только после этого запускайте сборку. Пока окружение активно, команда pyinstaller будет доступна без правки системного PATH.

С несколькими версиями Python ситуация похожая: убедитесь, что python, pip и ваш проект ссылаются на один и тот же интерпретатор. Проверить помогут команды where python и where pip — они покажут, какие исполняемые файлы система находит первыми.

Симптом Вероятная причина Решение
pip show не находит пакет PyInstaller не установлен python -m pip install pyinstaller
python -m PyInstaller работает, pyinstaller — нет Папка Scripts не в PATH Добавить путь в Path и перезапустить терминал
Работает в одном окне, не работает в другом Не активировано venv Активировать окружение перед запуском
Установлено, но версия «не та» Несколько версий Python Использовать python -m pip нужной версии
Ошибка после установки с --user Roaming-папка Scripts не в PATH Добавить пользовательский путь Scripts в Path
Как проверить, какой Python использует терминал

Выполните where python и where pip — первые строки вывода покажут, какие исполняемые файлы находятся первыми в PATH. Если пути ведут в разные установки Python, пакет мог установиться не туда. Сверьте также вывод python --version с версией, указанной в пути установки PyInstaller.

Шаг 5. Переустановка и типичные ошибки установки

Если пакет формально установлен, но ничего не помогает, попробуйте чистую переустановку:

python -m pip uninstall pyinstaller

python -m pip install --force-reinstall pyinstaller

Во время установки внимательно читайте вывод pip. Записи вида «installed to ... which is not on PATH» прямо указывают, какой каталог нужно добавить в переменные среды. Также убедитесь, что у терминала есть права на запись в каталог установки — при сомнениях запустите установку от имени администратора или используйте флаг --user.

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

Почему pyinstaller работал, а потом перестал?

Возможные причины: обновление Python изменило пути, переменная PATH была сброшена или перезаписана другой установкой, либо вы открыли терминал вне активированного виртуального окружения. Проверьте pip show pyinstaller и where pyinstaller.

Можно ли запускать PyInstaller без добавления в PATH?

Да. Используйте форму python -m PyInstaller script.py — она вызывает модуль напрямую через интерпретатор и не зависит от переменных окружения.

Ошибка возникает в PowerShell, а в cmd всё работает (или наоборот). Почему?

Оба терминала читают одну и ту же PATH, поэтому чаще дело в том, что одно из окон было открыто до изменения переменных среды. Закройте все окна терминалов и откройте заново.

Нужно ли устанавливать PyInstaller глобально или в venv?

Рекомендуемый подход — ставить PyInstaller в виртуальное окружение проекта. Тогда версии зависимостей не конфликтуют между проектами, а команда доступна сразу после активации окружения.

pip тоже не распознаётся как команда. Что делать?

Это означает, что в PATH отсутствует сам Python. Либо переустановите Python с отмеченной опцией «Add Python to PATH», либо добавьте в Path папку установки Python и её подкаталог Scripts вручную.