pyinstaller создает автономный исполняемый файл, который использует qt.py - PullRequest
0 голосов
/ 01 апреля 2020

Я попытался создать тестовый исполняемый файл с помощью команды pyinstaller -F helloQT.py, использующей QT, и получаю следующую ошибку:

$ ./helloQT.exe
Traceback (most recent call last):
  File "helloQT.py", line 2, in <module>
ModuleNotFoundError: No module named 'Qt'
[12884] Failed to execute script helloQT

Вот мой исходный файл:

import sys
from Qt.QtWidgets import QApplication, QWidget, QLabel

def window():
    app = QApplication(sys.argv)
    w = QWidget()
    b = QLabel(w)
    b.setText("Hello World!")
    w.setGeometry(100, 100, 200, 50)
    b.move(50, 20)
    w.setWindowTitle("PyQt")
    w.show()
    sys.exit(app.exec_())


if __name__ == '__main__':
    window()

Поэтому я использую python 3.8.2 с пакетами:

Package        Version
-------------- ---------
pip            20.0.2
PyInstaller    3.6
PySide2        5.14.2
Qt.py          1.2.5

(у меня есть несколько других пакетов, но я думаю, что они уместны)

Запуск стандартным способом python helloQT.py приводит к ожидаемому выполнению:

enter image description here

Что мне нужно сделать по-другому, чтобы это правильно выполнялось? В конечном итоге я пытаюсь заставить большую программу изложения, основанную на абстракции QTpy для PySide2, запускать таким образом, но у меня были проблемы. Я надеюсь лучше понять эту проблему с игрушкой, прежде чем атаковать мой более крупный проект.

1 Ответ

1 голос
/ 01 апреля 2020

Вероятно, PyInstaller не знает о Qt.py. Хотя PySide2 указано как поддерживаемое, Qt.py - нет.

Так что вам, вероятно, придется указать PyInstaller, чтобы включить Qt.py. См. Например здесь .

...