3

我一直在尝试使用 cx_freeze 一段时间,但总是出现同样的错误

    import cx_Freeze.util
ImportError: DLL load failed: %1 is not a valid win32 application

我尝试了 32 位和 64 位,并且尝试了 setup.py 和 cxfreeze.bat

我要问的是,我该如何让它工作?

4

1 回答 1

1

我遇到了同样的问题,这是我的解决方案。

我在 Windows 64 位上使用 Python 3.2,我的库安装都是 64 位的,包括 cx_freeze。当我试图“冻结”一个导入 PyQt4 包的程序时,我得到了错误:

ImportError: DLL load failed: %1 is not a valid win32 application

就我而言,问题在于 cxfreeze 脚本从我的 MATLAB 安装中复制了两个 DLL 文件(QtCore4.dll 和 QtGui4.dll),而不是从我的 Python 安装中。MATLAB DLL 是 32 位的,而 Python DLL 是所需的 64 位文件。

阅读运行 cxfreeze 脚本以构建 exe 文件时显示的消息。最后几条消息应该是“正在复制 ...dll-> ....dll”。检查文件名并确保所有文件实际上都是从您的 Python 安装而不是其他程序复制的。

如果它们是从其他地方复制的(如我的情况),您可以在构建后简单地将它们复制到自己身上。否则,您将不得不更改您的路径以不包含包含来自任何程序的 32 位 DLL 的文件夹。

于 2012-03-02T17:51:27.747 回答