pyuic5 не является внутренней или внешней командой: как исправить ошибку

Ошибка «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 — в некоторых версиях пакета утилита лежит именно там.

📊 Как вы установили PyQt5?
Через pip в командной строке
Через PyCharm / другую IDE
Через Anaconda / conda
Не помню, устанавливал давно

Шаг 3. Добавляем папку Scripts в PATH

Когда путь к pyuic5.exe известен, добавьте его папку в переменную окружения PATH. Порядок действий в Windows 10 и 11 одинаковый по сути, отличается только оформление окон.

  • ⚙️ Откройте Параметры → Система → О системе → Дополнительные параметры системы либо нажмите Win + R и введите sysdm.cpl.
  • 📝 На вкладке «Дополнительно» нажмите «Переменные среды» и в разделе переменных пользователя найдите Path.
  • ➕ Добавьте новую строку с полным путём к папке, где лежит pyuic5.exe (без имени самого файла).
  • 🔄 Закройте и заново откройте командную строку — переменные окружения подхватываются только при запуске нового окна консоли.

Проверка результата простая: в новом окне консоли введите pyuic5 --version. Если вместо ошибки появилась версия утилиты, PATH настроен корректно.

☑️ Настройка PATH для pyuic5

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

Альтернатива: запуск без правки 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-файл предпочтительнее.