【问题标题】:PyQt to exe. No module named 'PyQt5.QtCore'PyQt 到 exe。没有名为“PyQt5.QtCore”的模块
【发布时间】:2016-01-30 12:16:58
【问题描述】:

我正在尝试使用 py2exe 将 PyQt py 编译为 exe。
导入系统 从 PyQt5 导入 QtWidgets

#PythonApplication1.py
def main():
    app = QtWidgets.QApplication(sys.argv)
    window = QtWidgets.QMainWindow()
    button = QtWidgets.QPushButton("Hello world")
    window.setCentralWidget(button)
    window.show()
    app.exec_()

-

#setup.py
from distutils.core import setup
import py2exe
setup(windows=[{"script":"PythonApplication1.py"}], options={"py2exe":{"includes":["sip"]}})

$python setup.py py2exe --includes sip

当我运行 exe 时,只有错误窗口:有关详细信息,请参阅日志文件 'C:\dist\PythonApplication1.log'。

#PythonApplication1.log
Traceback (most recent call last):
  File "PythonApplication1.py", line 5, in <module>
  File "<loader>", line 10, in <module>
  File "<loader>", line 8, in __load
ImportError: (No module named 'PyQt5.QtCore') 'C:\\dist\\PyQt5.QtWidgets.pyd'

【问题讨论】:

  • 您可以尝试将import PyQt5.QtCore 添加到您的PythonApplication1.py

标签: python pyqt py2exe


【解决方案1】:

我设法通过修改 setup.py

构建了一个可执行应用程序
setup(windows=[{"script": "PythonApplication1.py"}],
      options= {"py2exe": {"includes": ["sip", "PyQt5.QtCore", "PyQt5.QtGui"]}})

并通过将 qwindows.dll 复制到 dist/platforms/ 目录。

另一种方法是添加导入语句

import PyQt5.QtCore
import PyQt5.QtGui

到主程序。

【讨论】:

  • 这对我没有帮助。但是您对我的问题的评论确实如此。
  • @Ufx 奇怪,我测试了这两种方法,除了 qwindows.dll 之外,这两种方法似乎都有效
猜你喜欢
  • 1970-01-01
  • 2019-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-02
  • 2020-07-26
  • 2018-08-11
相关资源
最近更新 更多