Ошибка «pyuic5 не является внутренней или внешней командой, исполняемой программой или пакетным файлом» появляется в командной строке Windows, когда система не находит исполняемый файл pyuic5.exe — конвертер файлов интерфейса .ui из Qt Designer в Python-код. Чаще всего причина одна из трёх: пакет PyQt5 не установлен, установлен без утилит командной строки, либо папка Scripts интерпретатора не добавлена в переменную окружения PATH.
Хорошая новость в том, что проблема решается штатными средствами за несколько минут и не требует переустановки Windows или Python. Ниже разберём, как проверить, что именно пошло не так, и приведём несколько рабочих способов запуска конвертера — от исправления PATH до вызова через модуль python -m.
Почему возникает ошибка pyuic5
Когда вы вводите команду в cmd или PowerShell, Windows ищет исполняемый файл в текущей папке и в каталогах, перечисленных в переменной PATH. Если pyuic5.exe там не находится, система выдаёт именно это сообщение. Сама по себе ошибка не означает, что файл повреждён или удалён, — она лишь говорит, что командная строка не знает, где он лежит.
Типичные сценарии, приводящие к проблеме:
- 🔍 PyQt5 не установлен в текущем окружении Python — например, вы работаете в виртуальном окружении, а пакет ставили глобально.
- 📁 Папка
Scripts(например,C:\Users\Имя\AppData\...\Python3x\Scripts) отсутствует в PATH, поэтому консоль не видит установленные утилиты. - 🐍 В системе несколько версий Python, и
pyuic5установлен в одну, а консоль по умолчанию использует другую. - 📦 Установлен PyQt5, но не pyqt5-tools или PyQt5Designer — в некоторых связках конвертер поставляется отдельным пакетом.
Обратите внимание: если вы используете Anaconda или Miniconda, пути к утилитам будут другими, и обычные инструкции про AppData могут не подойти. Проверяйте расположение конкретно своего окружения.
Шаг 1. Проверяем, установлен ли PyQt5
Прежде чем править PATH, убедитесь, что сам пакет присутствует в том интерпретаторе, с которым вы работаете. Откройте командную строку и выполните:
python -m pip show PyQt5
Если пакет установлен, команда выведет название, версию и путь установки. Если в ответ приходит сообщение вида «WARNING: Package(s) not found», значит, PyQt5 в этом окружении отсутствует, и его нужно поставить:
python -m pip install PyQt5 pyqt5-tools
Вызов через python -m pip важен: так вы гарантированно ставите пакет именно в тот интерпретатор, который запускается командой python. Это исключает ситуацию, когда pip относится к одной версии Python, а ваш проект — к другой.
⚠️ Внимание: если вы работаете в виртуальном окружении (venv), сначала активируйте его, иначе пакет установится в глобальный Python, а в проекте ошибка останется. Активация в Windows обычно выполняется командой venv\Scripts\activate из папки проекта.
Шаг 2. Находим, где лежит pyuic5.exe
Если пакет установлен, а ошибка остаётся, нужно выяснить фактическое расположение утилиты. В зависимости от способа установки файл может находиться в разных местах: в папке Scripts интерпретатора или внутри каталога пакета pyqt5-tools.
Быстрый способ найти файл — поиск по папке Python. Выполните в командной строке:
where python
dir /s /b "C:\Users\%USERNAME%\AppData\Local\Programs\Python\pyuic5.exe"
Первая команда покажет путь к активному интерпретатору, вторая попытается найти pyuic5.exe в типичном расположении. Если поиск ничего не дал, проверьте папку site-packages\pyqt5_tools\Qt\bin и site-packages\qt5_applications\Qt\bin внутри каталога вашего Python — в некоторых версиях пакета утилита лежит именно там.
Шаг 3. Добавляем папку Scripts в PATH
Когда путь к pyuic5.exe известен, добавьте его папку в переменную окружения PATH. Порядок действий в Windows 10 и 11 одинаковый по сути, отличается только оформление окон.
- ⚙️ Откройте
Параметры → Система → О системе → Дополнительные параметры системылибо нажмитеWin + Rи введитеsysdm.cpl. - 📝 На вкладке «Дополнительно» нажмите «Переменные среды» и в разделе переменных пользователя найдите
Path. - ➕ Добавьте новую строку с полным путём к папке, где лежит
pyuic5.exe(без имени самого файла). - 🔄 Закройте и заново откройте командную строку — переменные окружения подхватываются только при запуске нового окна консоли.
Проверка результата простая: в новом окне консоли введите pyuic5 --version. Если вместо ошибки появилась версия утилиты, PATH настроен корректно.
☑️ Настройка PATH для pyuic5
Альтернатива: запуск без правки PATH
Если менять системные переменные не хочется или нет прав администратора на рабочем компьютере, конвертер можно вызывать напрямую. Самый надёжный вариант — запуск через модуль интерпретатора:
python -m PyQt5.uic.pyuic design.ui -o design.py
Такой вызов работает, пока пакет PyQt5 установлен в активном интерпретаторе, и вообще не зависит от PATH. Это удобно в скриптах сборки и при работе в чужих окружениях. Ещё один вариант — указать полный путь к утилите в кавычках:
"C:\Users\Имя\AppData\Local\Programs\Python\Python311\Scripts\pyuic5.exe" design.ui -o design.py
Для пользователей PyQt6 логика аналогичная: утилита называется pyuic6, а модульный вызов выглядит как python -m PyQt6.uic.pyuic. Не смешивайте версии — файл, созданный под Qt6, не всегда корректно обрабатывается конвертером от Qt5.
Сравнение способов решения
Чтобы выбрать подходящий вариант, сверьтесь с таблицей: у каждого метода свои требования и ограничения.
| Способ | Когда подходит | Ограничения |
|---|---|---|
| Добавление Scripts в PATH | Постоянная работа с pyuic5 из консоли | Требует перезапуска консоли, зависит от версии Python |
| Запуск через python -m | Любая ситуация, скрипты автоматизации | Нужно помнить синтаксис модуля |
| Полный путь к exe | Разовая конвертация файла | Путь меняется при обновлении Python |
| Конвертация в IDE (PyCharm) | Работа внутри проекта | Требуется настройка External Tools |
В PyCharm, кстати, можно настроить запуск конвертера через File → Settings → Tools → External Tools, указав программу и аргументы с макросами вроде $FileName$. Точные названия полей зависят от версии IDE, поэтому сверяйтесь с её документацией.
Особые случаи: Anaconda, несколько Python, Microsoft Store
Отдельного внимания заслуживают нестандартные установки. В Anaconda утилиты обычно лежат в папке Library\bin внутри каталога окружения, и добавлять в PATH нужно именно её. Проверить активное окружение помогает команда conda env list.
Python, установленный из Microsoft Store, хранит скрипты в изолированном каталоге внутри %LOCALAPPDATA%\Packages, и путь туда длиннее обычного. Если pyuic5 ставился в Store-версию Python, ищите exe в папках вида %LOCALAPPDATA%\Packages\PythonSoftwareFoundation.Python.3.x\...\LocalCache — либо проще переключиться на вызов через python -m, который работает независимо от расположения.
⚠️ Внимание: при наличии нескольких версий Python командаpyuic5после правки PATH может запускать утилиту не той версии. Проверяйте соответствие командойpyuic5 --versionи порядком каталогов в Path — Windows берёт первый найденный файл.
Что делать, если pyuic5 запускается, но падает с ошибкой
Если утилита находится, но при конвертации выдаёт traceback, проверьте, что .ui-файл создан в Qt Designer совместимой версии (Qt5 для pyuic5). Также убедитесь, что путь к файлу не содержит кириллицы в старых версиях инструментов — при проблемах переместите файл в папку с латинским именем и повторите конвертацию.
Частые вопросы (FAQ)
Чем pyuic5 отличается от pyrcc5?
pyuic5 конвертирует файлы интерфейса .ui в Python-код, а pyrcc5 компилирует файлы ресурсов .qrc (иконки, изображения). Обе утилиты входят в состав PyQt5 и страдают от одной и той же проблемы с PATH.
Установил PyQt5, но папки Scripts нет. Это нормально?
Да, возможный вариант: в зависимости от версии пакета утилита может лежать внутри site-packages\pyqt5_tools или site-packages\qt5_applications. Найдите файл поиском и добавьте в PATH именно ту папку, где он фактически находится.
Ошибка появляется в PyCharm, но в cmd всё работает. Почему?
IDE может использовать свой терминал с собственным набором переменных окружения или другое виртуальное окружение проекта. Проверьте в настройках проекта, какой интерпретатор выбран, и перезапустите PyCharm после изменения PATH.
Нужно ли перезагружать компьютер после изменения PATH?
Нет, достаточно закрыть и заново открыть командную строку или IDE. Полная перезагрузка требуется только в редких случаях, когда переменные кэшировались системными службами.
Можно ли обойтись вообще без pyuic5?
Да: файл .ui можно загружать напрямую в коде через uic.loadUi() из модуля PyQt5.uic, без предварительной конвертации. Это удобно на этапе разработки, хотя для распространения программы скомпилированный Python-файл предпочтительнее.