1

我已经构建了一个 GUI,PyQt5并希望Python通过将其与pynsist. 不幸的是,当启动安装程序生成的快捷方式时,GUI 没有按预期打开并Python不断崩溃(即使Python已安装)。

控制台在崩溃时显示以下错误:

ModuleNotFoundError: No module named 'sip'.

这是由于from PyQt5.QtCore import *.

.launch.py不幸的是,在已安装的计算机上启动脚本时Python,一切正常。我想这是因为它以安装的版本而不是 GUI 构建中包含的版本为目标。但是,快捷方式不起作用,无论是否Python安装,都会出现上述错误。

任何想法如何解决此问题并使快捷方式在尚未Python安装的计算机上工作?

先感谢您!

4

2 回答 2

3

当我第一次遇到这个问题时,我只是添加sip.pyd到我的项目文件夹中。您可以在以下位置找到它:

x:/path-to-python/Lib/site-packages/sip.pyd

但真正解决我的问题的是使用 pyinstaller。它会自动检测大多数依赖项,并且大部分时间无需复杂配置即可运行。

pip install pyinstaller
pyinstaller main.py 
# done
于 2018-03-12T12:45:21.117 回答
2

Sip 是PyQt5 需要的一个单独的包。您可以通过在中列出它来将其包含在您的应用程序中pypi_wheels=,如PyQt5 示例中所示:

[Include]
packages=listapp
pypi_wheels= PyQt5==5.6
    sip==4.18

如果您使用的是最新版本的 PyQt5 (5.10.1),那么最新版本的 sip (4.19.8) 应该可以使用它。

于 2018-03-13T09:21:09.220 回答