DLL 加载失败:%1 不是有效的 win32 应用程序

gli*_*ark 5 c python extension-modules

所以我遇到一种情况,我需要制作二进制补丁,然后能够从 python 中应用它们。我发现bsdiff看起来是一个很棒的算法,并且有一个python 扩展模块,但是该扩展模块没有超过 Python 2.5 的 Windows 安装程序

好吧,我什至从未认真编写过 C,更不用说尝试使用 python 扩展模块了,所以我开始自己编译它。在用 MinGW32 解决 DLL 加载错误几个小时后,我设法使用项目源代码中提供的 setup.py 对其进行编译和构建。但是,在导入生成的 bsdiff 模块后,我得到:

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

我正在运行 64 位 python。

有什么建议吗?

小智 2

这是 Python 和 pywin32 版本不匹配。使用 easy_install 在虚拟环境中安装 pywin32 后收到相同的错误消息: (py351env) C:\Users\ernesto.luzon\Downloads>easy_install pywin32-220.win-amd64-py3.5.exe

当我尝试导入 win32gui 时,我得到了完全相同的错误: DLL Load Failed: %1 is not a valid win32 application

谷歌搜索错误消息让我找到了这篇文章,其中 cgohlke 建议从这里下载 pywin32 包:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32

我下载了64位版本并通过pip安装: pip install pywin32-220-cp35-none-win_amd64.whl

我立即收到一条错误消息,指出我的 python 版本与我尝试安装的包不匹配。所以我在命令行中输入“python”来启动解释器,实际上我的 64 位机器中安装的 python 是 32 位 python。卸载python并正确安装64位后,无论我使用easy_install从sourceforge项目安装pywin32,还是使用pip从gohlke安装wheel文件,这个错误都消失了。