Cx_Freeze DLL加载失败

3 投票
1 回答
6145 浏览
提问于 2025-04-17 10:17

我尝试使用cx_freeze已经有一段时间了,但总是出现同样的错误。

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

我试过32位和64位的版本,也试过setup.py和cxfreeze.bat这两种方法。

我想问的是,怎么才能让它正常工作呢?

1 个回答

1

我也遇到过同样的问题,这里是我的解决办法。

我在使用64位的Windows系统,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文件时,注意查看显示的消息。最后几条消息应该是“copying ...dll-> ....dll”。检查文件名,确保所有文件确实是从你的Python安装中复制的,而不是其他程序。

如果它们是从其他地方复制的(就像我遇到的情况),你可以在构建后自己手动复制过来。否则,你需要更改路径,不要包含那些32位DLL所在的文件夹。

撰写回答