python - DLL 加载失败 : %1 is not a valid win32 application

标签 python c extension-modules

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

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

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

我正在运行 64 位 python。

有什么建议吗?

最佳答案

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

当我尝试导入 win32gui 时,我遇到了完全相同的错误: DLL 加载失败:%1 不是有效的 win32 应用程序

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

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

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

关于python - DLL 加载失败 : %1 is not a valid win32 application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12434283/

相关文章:

python - Gnuplot 脚本中的 Gnuplot 5.0 'set output filename' 不起作用

c - C 内联汇编中的 RDTSC 导致段错误!

python - Python 扩展模块的 C 代码中的 "if item in list/set' 相当于什么?

c++ - Boost Python 中的跨模块依赖关系

python - Pandas DataFrame 拼接结果成为系列

python - 明确关闭异步事件循环的必要性

c++ - 两个文件中相同函数/全局变量的不同声明

c - 使用 sleep 函数时如何增加计数?

python - 通过单端口多头(立体)USB 摄像头使用 Opencv 进行视频捕获,提供单一输出