Ошибка «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. Если версия вывелась — проблема решена.
Шаг 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
Шаг 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 вручную.