python - 在32位python解释器中导入64位dll时出现ImportError

标签 python 32bit-64bit

在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/

相关文章:

vba - 可以将 LongLong 存储在变体中吗?

Python 多只 turtle (看似)同时移动

python - 在 Python 中初始化全局变量的正确方法

python - 如何将脚本作为 Travis CI 构建的一部分运行?

x86 - OPOS 库 v1.14 无法按预期使用 .net 的 x64 版本

为32位cpu编译Linux内核模块

用于 i386 和 x86_64 的 Linux 单一二进制文件

python - 用户输入中的可选参数

python - RabbitMQ + 昆布 : write/read to one-time use queues with random names

windows - 为什么 %1 很少在 "%1 is not a valid Win32 application."中被替换