所以我有一种情况,我需要制作二进制补丁,然后能够从 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/