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

2024-06-25 05:19:21 发布

您现在位置:Python中文网/ 问答频道 /正文

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

好吧,因为我从来没有认真地编写过C语言,更不用说尝试了一个python扩展模块,所以我开始自己编译它。几个小时后,我用MinGW32对一个DLL加载错误大发雷霆,我设法用项目源中提供的setup.py编译和构建了它。但是,在导入生成的bsdiff模块时,我得到:

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

我在运行64位python。

有什么建议吗?


Tags: 模块项目算法windows错误setupextension二进制
1条回答
网友
1楼 · 发布于 2024-06-25 05:19:21

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位python之后,这个错误消失了,无论我是使用easy_install从sourceforge项目安装pywin32,还是使用pip从gohlke安装wheel文件。

相关问题 更多 >