python - 使用 cx_freeze 6.6 构建时,PySide2 不会导入
问题描述
我有一个使用 cx_freeze 6.2 构建的程序。在我们添加 GUI 之前,它一直运行良好,然后在构建 EXE 后我们开始收到 ImportErrors。
...
File "C:\Users\Engineer\anaconda3\lib\site-packages\PySide2\__init__.py", line 88, in <module>
File "C:\Users\Engineer\anaconda3\lib\site-packages\PySide2\__init__.py", line 54, in _setupQtDirectories
File "C:\Users\Engineer\anaconda3\lib\site-packages\shiboken2\__init__.py", line 27, in <module>
ImportError: DLL load failed: The specified module could not be found.
...
我一直在寻找解决方案。不幸的是,我发现的唯一一个是“使用 Python 3.6 和 cx_freeze 5.1.1”,但这对我来说不是一个选项,因为我们有一个静态环境,并且需要付出很多努力才能获得批准来更改 python 的版本。(较小的包裹可能有更多的运气)
我已经尝试过新版本的 cx_freeze (6.6) 但仍然没有运气。
当前配置:Python 3.7.6 PySide 5.15.0 shiboken2 5.15.0
有没有人能够找到解决方案,一些构建脚本黑客或不涉及重新安装不同版本的 Python 的东西?
解决方案
您缺少在代码导入时shiboken2.pyd
出现的文件:site-packages\shiboken2\shiboken2.pyd
shiboken2\__init__.py line 27:
from .shiboken2 import *
我不太了解,cx_freeze
但根据他们的文档,您
应该使用类似命令--packages=shiboken2
或其他命令来包含子模块?
推荐阅读
- python-3.x - 在 QThread 中打开 QfileDialog 后代码崩溃
- powerbi - Power BI 矩阵:过滤所有列计算为零的行
- cypress - 如何用柏树断言输入值是真实的
- android - Android Studio 3.5 :此方法包含本机引用并将被缩小。[继续失踪]
- c++ - Kinect 4 Windows 无法获取时间戳
- c# - ASP.NET 智能卡映像
- vba - 数字是否在字符串中的特定位置?
- javascript - 微前端 - 如何动态加载带有哈希的 URL
- ringcentral - 当我为 Authenticate 和 Request Token API 调用定义不同的 URI 时,为什么会收到 400 错误请求?
- ios - Aplitude 未记录在“applicationWillTerminate”iOS 中编写的事件