在32位python interp中导入64位dll时的ImportError

2024-04-18 18:59:33 发布

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

在64位python解释器中导入32位代码的错误代码是

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

这是在32位python解释器中导入64位代码时出现的相同错误吗?在

如果没有,那是什么错误?在


Tags: 代码applicationis错误notload解释器dll
2条回答

更新:我误读了原来的问题(基于它对“应用程序”一词的使用,而它的意思是“扩展模块”)。当你谈论将不兼容的扩展模块加载到Python中时,错误结果应该是相同的;32位DLL(扩展模块只是Windows上DLL的一个小特例)与64位Python可执行文件不兼容,64位DLL与32位Python可执行文件不兼容,因为同样的基本原因,错误消息(源于在尝试动态加载具有不兼容位的DLL时返回的Windows错误代码)将是相同的。在


关于应用程序与为后代保留的模块的原始答案,但与操作无关:


这绝对不是同一个错误;启动64位程序根本就不导入模块,因此它不会引发ImportError。在

因此,只要操作系统是64位的,并且支持运行32位和64位的混合进程,32位Python在启动64位程序时就不会遇到问题;问题是在同一个进程中混合和匹配32位和64位代码;两个不相关的进程可以具有操作系统/硬件支持的任何位。在

以问答的方式。。。在64位Windows计算机上

  • 直接从^{中的python.org下载{a1}
  • ^{}和{}文件下载了pyFFTW和{}的dll

正在运行两个导入。。。在

Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyfftw32
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: DLL load failed: The specified module could not be found.
>>> import pyfftw64
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: DLL load failed: %1 is not a valid Win32 application.

因此,在a中加载64bit应用程序也会得到相同的ImportError

我还用其他64位.pyd二进制文件检查了这一点,这些二进制文件给出了类似的错误。在

相关问题 更多 >