1

我将 CXFreeze 与 PySide (QT) 一起使用。我收到一个错误:cx_Freeze:主脚本中的 Python 错误。myscript.py 第 33 行,在 File ExtensionLoader_Pyside_QtGUI.py,第 11 行,在 Import Error: DLL load failed: The specified module could not be found

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

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

Python版本是2.7

4

3 回答 3

1

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

于 2013-08-02T23:41:29.937 回答
1

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

于 2013-08-03T20:52:40.493 回答
0

我使用 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 位。)

于 2013-08-11T08:11:46.050 回答