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

时间:2013-08-02 22:59:15

标签: python qt pyside cx-freeze

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

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

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

Python版本是2.7

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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

答案 2 :(得分: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位。)