【问题标题】:Cx_Freeze DLL load failedCx_Freeze DLL 加载失败
【发布时间】:2012-01-15 13:30:47
【问题描述】:

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

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

32 位和 64 位我都试过了,setup.py 和 cxfreeze.bat 都试过了

我要问的是,我该如何让它发挥作用?

【问题讨论】:

  • 提供更多细节。是窗户吗? 32、64位python?,linux?,你在新安装之前清理了失败安装的所有内容吗?你检查了吗?
  • 64位windows 7, 64位python 3.2.2,我清理完后重装试试,你说的“check it”是什么意思?
  • 检查一下 -> 有时 Windows 卸载程序实际上并没有卸载所有内容,而是让事情落后。所以,我的意思是检查文件夹、配置文件等是否真的被删除了
  • 刚刚用revo卸载了,正在检查
  • 检查我的答案 + cmets here

标签: python dll python-3.x exe cx-freeze


【解决方案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 的文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    • 2012-12-21
    • 2012-12-29
    相关资源
    最近更新 更多