在64位python
解释器中导入32位代码的错误代码是
ImportError: DLL load failed: %1 is not a valid Win32 application.
这是在32位python
解释器中导入64位代码时引发的相同错误吗?
如果没有,那是什么错误?
更新:我误读了原始问题(基于其使用术语“应用程序”时的意思是“扩展模块”)。当您谈论将不兼容的扩展模块加载到Python中时,错误结果应该是相同的; 32位DLL(扩展模块只是Windows上DLL的一个小特例)与64位Python可执行文件不兼容,64位DLL与32位Python可执行文件不兼容,原因相同,错误消息(从尝试动态加载具有不兼容位的DLL时返回的Windows错误代码派生)将是相同的。
关于为后代保留的应用程序与模块的原始答案,但与OP无关:
这肯定不是同一个错误;启动64位程序根本不会导入模块,所以它不会引发ImportError
。
就此而言,只要操作系统是64位并支持运行32位和64位进程的混合,32位Python就不会遇到启动64位程序的问题;问题是在同一个过程中混合和匹配32位和64位代码;两个不相关的进程可以拥有OS /硬件支持的任何位。
在Q&A风格...在64位Windows机器上
python
的python.org
下载了32bit
pyFFTW
和32bit
文件下载64bit
和gohlke/pythonlibs/
的.pyd
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
二进制文件检查了这个,这也给出了类似的错误。