使用 Fbs/PyInstaller 冻结我的应用程序导致在另一台电脑上启动时无法执行 pyi_rth_qt5plugins
Posted
技术标签:
【中文标题】使用 Fbs/PyInstaller 冻结我的应用程序导致在另一台电脑上启动时无法执行 pyi_rth_qt5plugins【英文标题】:Freezing my app with Fbs/PyInstaller result in fail to execute pyi_rth_qt5plugins when starting on an other pc 【发布时间】:2020-06-24 14:38:45 【问题描述】:我正在尝试使用 Fbs (https://build-system.fman.io/) 冻结我的 python 应用程序
在运行到我修复的一些库错误后,我能够冻结它而没有任何问题。 我可以在我的电脑上完美启动应用程序。但是在另一台计算机上,我会收到错误消息:
Failed to execute script pyi_rth_qt5plugins
经过一些研究,问题似乎来自 fbs 使用的 PyInstaller。 冻结时我在终端中没有错误,但在 warn-Colorspace_converter.txt 文件中我有以下错误:
missing module named 'PyQt5.QtCore' - imported by PIL.ImageQt (conditional, optional), l:\script\colour\venvcolour\lib\site-packages\PyInstaller\loader\rthooks\pyi_rth_qt5plugins.py (optional)
missing module named 'PyQt5.sip' - imported by l:\script\colour\venvcolour\lib\site-packages\PyInstaller\loader\rthooks\pyi_rth_qt5plugins.py (optional)
missing module named sip - imported by l:\script\colour\venvcolour\lib\site-packages\PyInstaller\loader\rthooks\pyi_rth_qt5plugins.py (optional)
我正在使用 PySide2,我该如何解决这个问题?
线程到我发现但我不明白的类似问题,因为它们仅用于 pyinstaller 或 PyQt5。我应该安装可能导致 fbs 出现问题的 PyQt5 有两个库吗?
https://github.com/pyinstaller/pyinstaller/issues/2301
Python 3.6.x PyInstaller gives error "No module named 'PyQt5.sip'"
环境:
Windows 10 PySide2 Python 3.6.8【问题讨论】:
【参考方案1】:我不是专家或任何东西.. 分享我的经验
您可以使用最新的 Pyinstaller 版本来冻结应用程序。然后将对象移动到 target/<appname>
文件夹。
现在使用fbs installer
来制作安装程序。
Failed to execute script
总是在缺少某些依赖项时出现。
我相信我们也可以使用fbs freeze --debug
,它将显示缺少的依赖项。然后,您可以将它们添加到 .spec
文件中的 hidden imports
中
【讨论】:
感谢您的回答,我使用freeze --debug
修复了所有问题,并且我设法让它在我的电脑上像那样工作(但在其他电脑上仍然不行)。我将尝试使用 PyInstaller 而不是 Fbs 进行冻结。【参考方案2】:
看来重新创建我的虚拟环境并降级到较低的 PySide2 版本 (5.13.1) 解决了这个问题。
我在 PyInstaller 日志中仍然有相同的错误(并且在终端中也找不到一些库),但应用程序现在可以完美启动。
【讨论】:
以上是关于使用 Fbs/PyInstaller 冻结我的应用程序导致在另一台电脑上启动时无法执行 pyi_rth_qt5plugins的主要内容,如果未能解决你的问题,请参考以下文章
在 Flutter 中使用 Hive 数据库时我的应用程序冻结
CLLocationManager 从后台状态返回时冻结我的应用程序?