在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 位代码;两个不相关的进程可以具有操作系统/硬件支持的任何位数。
关于python - 在32位python解释器中导入64位dll时出现ImportError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52335764/