我使用PyQt5
构建了一个GUI,并希望通过将其Python
打包,将其分发到未安装pynsist
的其他计算机。不幸的是,在启动安装程序生成的快捷方式时,GUI无法按预期打开,并且Python
不断崩溃(即使Python
已经安装)。
控制台在崩溃时显示以下错误:
ModuleNotFoundError: No module named 'sip'.
这是由于from PyQt5.QtCore import *
。
不幸的是,在安装了.launch.py
的计算机上启动Python
脚本时,一切正常。我想这是因为它然后针对已安装的版本而不是GUI构建中包含的版本。
但是,无论是否安装了Python
,快捷方式都不起作用,从而给出了上述错误。
有任何想法如何解决此问题并使快捷方式适用于未安装Python
的计算机?
提前谢谢!
答案 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)应该可以使用它。