使用 Pynsist 和 PyQt 构建的 GUI:导入错误 'sip'
GUI Built with Pynsist and PyQt: Import Error 'sip'
我已经使用 PyQt5
构建了一个 GUI,并希望通过使用 pynsist
将其打包到没有安装 Python
的其他计算机上。不幸的是,当启动安装程序生成的快捷方式时,GUI 没有按预期打开并且 Python
不断崩溃(即使安装了 Python
)。
控制台在崩溃时显示以下错误:
ModuleNotFoundError: No module named 'sip'.
这是由于 from PyQt5.QtCore import *
。
不幸的是,在安装了 Python
的计算机上启动 .launch.py
脚本时,一切正常。我想这是因为它随后以安装的版本为目标,而不是 GUI 构建中包含的版本。
但是,快捷方式不起作用,无论是否安装 Python
,都会出现上述错误。
关于如何解决此问题并使快捷方式在未安装 Python
的计算机上起作用的任何想法?
提前致谢!
当我第一次遇到这个问题时,我只是将 sip.pyd
添加到我的 project-folder。您可以在以下位置找到它:
x:/path-to-python/Lib/site-packages/sip.pyd
但真正解决我问题的是using pyinstaller。
它会自动检测大多数依赖项,并且大部分时间无需复杂的配置即可运行。
pip install pyinstaller
pyinstaller main.py
# done
Sip 是 separate package which PyQt5 requires. You can include it with your application by listing it in pypi_wheels=
, as in the PyQt5 example:
[Include]
packages=listapp
pypi_wheels= PyQt5==5.6
sip==4.18
如果您使用的是最新版本的 PyQt5 (5.10.1),那么最新版本的 sip (4.19.8) 应该可以使用它。
我已经使用 PyQt5
构建了一个 GUI,并希望通过使用 pynsist
将其打包到没有安装 Python
的其他计算机上。不幸的是,当启动安装程序生成的快捷方式时,GUI 没有按预期打开并且 Python
不断崩溃(即使安装了 Python
)。
控制台在崩溃时显示以下错误:
ModuleNotFoundError: No module named 'sip'.
这是由于 from PyQt5.QtCore import *
。
不幸的是,在安装了 Python
的计算机上启动 .launch.py
脚本时,一切正常。我想这是因为它随后以安装的版本为目标,而不是 GUI 构建中包含的版本。
但是,快捷方式不起作用,无论是否安装 Python
,都会出现上述错误。
关于如何解决此问题并使快捷方式在未安装 Python
的计算机上起作用的任何想法?
提前致谢!
当我第一次遇到这个问题时,我只是将 sip.pyd
添加到我的 project-folder。您可以在以下位置找到它:
x:/path-to-python/Lib/site-packages/sip.pyd
但真正解决我问题的是using pyinstaller。 它会自动检测大多数依赖项,并且大部分时间无需复杂的配置即可运行。
pip install pyinstaller
pyinstaller main.py
# done
Sip 是 separate package which PyQt5 requires. You can include it with your application by listing it in pypi_wheels=
, as in the PyQt5 example:
[Include]
packages=listapp
pypi_wheels= PyQt5==5.6
sip==4.18
如果您使用的是最新版本的 PyQt5 (5.10.1),那么最新版本的 sip (4.19.8) 应该可以使用它。