pySide: ExtensionLoader_Pyside_QtGUI.py 找不到指定的模块

Posted

技术标签:

【中文标题】pySide: ExtensionLoader_Pyside_QtGUI.py 找不到指定的模块【英文标题】:pySide: ExtensionLoader_Pyside_QtGUI.py specified module could not be found 【发布时间】:2013-08-02 22:59:15 【问题描述】:

我正在使用 CXFreeze 和 PySide (QT)。我收到一个错误: cx_Freeze:主脚本中的 Python 错误。 myscript.py 第 33 行,在 文件 ExtensionLoader_Pyside_QtGUI.py,第 11 行,在 导入错误:DLL 加载失败:找不到指定的模块

运行全新安装的 Windows Server 2008 时。 我正在运行冻结的 EXE 包(带有文件夹)。它似乎适用于我自己的系统和其他系统。可能是什么问题?

在线阅读后,我尝试替换Qt4Gui文件,但这并没有解决问题。

Python 版本是 2.7

【问题讨论】:

【参考方案1】:

根据您的Import Error: DLL load failed,很可能是安装问题导致缺少 DLL。要准确确定您缺少哪个 DLL,请使用 http://www.dependencywalker.com/ 运行 .exe 并打开 File ExtensionLoader_Pyside_QtGUI.py 的 .pyd 文件,它会准确显示缺少哪些 DLL,更重要的是它们应该在的位置。然后您可能可以在线查找丢失的 DLL。

【讨论】:

谢谢,虽然可能不是第一名,但这是一个很好的了解工具!【参考方案2】:

pyside 1.2.0 和 cxFreeze 存在已知问题。所有都应该在开发版本中修复(在 git repo 上可用)。请自行从最新源构建 PySide 或等待 PySide 版本 1.2.1。构建说明在这里 [1]。

[1]https://github.com/PySide/pyside-setup#building-pyside-on-a-windows-system

【讨论】:

这是使用 PySide 1.1.2。这是一个很好的提示,但它并不适用。【参考方案3】:

我使用 Py2exe 而不是 CXFreeze,它运行良好。

另外,显然 Python 需要 MS Visual C++ 依赖文件: http://www.microsoft.com/en-us/download/details.aspx?id=29 因此,如果是全新安装,任何捆绑也需要它。 (尽管我认为它们现在与较新的 Windows 版本捆绑在一起。)

其他说明: 根据我的经验,有时您应该快速尝试 CXFreeze、Py2EXE 和 PyInstaller,看看是否有一个效果最好。像 CXFreeze 一样理想的是:跨平台,但它不会完美地发生。

另外,虽然我不知道这是否是一个因素,但我设置了一个 Windows 2000 Pro 虚拟机并在其上运行 Py2exe。这是为了确保所有旧 Windows 版本的兼容性,并且似乎运行良好。 (注意:很多东西甚至不再在 Win2000 上运行,所以要小心你的其他工具和库会在上面运行。)

最后,要格外小心地匹配所有库的位级别(32 与 64)以及 Python 安装本身。如果您有 32 位 python,请确保您的 PySide、CXFreeze 和您使用的任何其他库都是 32 位的。 (如果您使用的是 64 位 python,则为 64 位。)

【讨论】:

以上是关于pySide: ExtensionLoader_Pyside_QtGUI.py 找不到指定的模块的主要内容,如果未能解决你的问题,请参考以下文章

PySide2兼容PySide1的补丁代码

pySide: ExtensionLoader_Pyside_QtGUI.py 找不到指定的模块

Python/pyside,pyqt(pyside,pyqt optional): 控制文本选择的函数

当 slot 函数具有默认参数=None 时,PySide2 的行为与 PySide 不同

python3的Pyside-uic?

Pyside2.QtCore.QObject 不是 MyTableWidget 的直接基类——PySide2 出错