Задать вопрос
  • Почему pyinstaller не видит uic файл?

    @mc92
    Если правильно понял суть проблемы, то:
    Вам нужно изменить подход к использованию ui.
    Все исходные файлы из qtdesigner нужно перевести в формат .py

    Ресурсы
    В папку со всеми окнами располагаем ресурсы
    `.qrc -> .py`
    pyrcc6 res/resources.qrc -o src/gui/windows/ui/resources_rc.py; \

    Интерфейс
    `.ui -> .py`
    pyuic6  --from-imports res/ui/main.ui -o src/gui/windows/ui/main.py; \

    --from-imports - в файле ресурсов .py сделает импорт from . import resources_rc, т.е. подхватит ранее созданные в этом каталоге файл ресурсов

    ресурсы + интерфейс в 1 команду

    pyrcc6 res/resources.qrc -o src/gui/windows/ui/resources_rc.py; \
    pyuic6 --from-imports res/ui/main.ui -o src/gui/windows/ui/main.py; \
    pyuic6 --from-imports res/ui/sub.ui -o src/gui/windows/ui/sub.py;


    Класс окна (на примере главного)
    from PyQt6.QtWidgets import QMainWindow
    from .ui.main import Ui_MainWindow
    
    class MainWindow(QMainWindow, Ui_MainWindow):
        def __init__(self):
            super().__init__()
            self.setupUi(self)

    для PySide6

    заменить:
    pyrcc6 на pyside6-rcc
    pyuic6 на pyside6-uic

    Таким образом мы перевели файлы ресурсов и шаблонов в .py формат, инициировали их в нашем классе (MainWindow).

    Теперь, при сборке, pyinstaller пройдется по всем импортам, включая ресурсы и интерфейсы, и добавит их себе.

    Еще можете обратить внимание на библиотеку nuitka для создания exe файлов и не только.
    Ответ написан
    Комментировать