使用Pynsist和PyQt构建的GUI:导入错误' sip'

时间:2018-03-12 11:23:49

标签: python pyqt pyqt5 pynsist

我使用PyQt5构建了一个GUI,并希望通过将其Python打包,将其分发到未安装pynsist的其他计算机。不幸的是,在启动安装程序生成的快捷方式时,GUI无法按预期打开,并且Python不断崩溃(即使Python已经安装)。

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

ModuleNotFoundError: No module named 'sip'.

这是由于from PyQt5.QtCore import *

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

有任何想法如何解决此问题并使快捷方式适用于未安装Python的计算机?

提前谢谢!

2 个答案:

答案 0 :(得分:1)

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

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

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

pip install pyinstaller
pyinstaller main.py 
# done

答案 1 :(得分:1)

Sip是PyQt5所需的separate package。您可以将其与pypi_wheels=中的[Include] packages=listapp pypi_wheels= PyQt5==5.6 sip==4.18 列在一起,将其与您的应用一起添加:PyQt5 example

Decimal

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