首页 > 解决方案 > Python 找不到带有模块的本地 .PYD 文件

问题描述

我用 C++ 编写了一个 DLL 模块,并想在 Python 中使用它。我已经设法让一个 32 位版本工作,但我现在需要一个 64 位版本。我已经更改了创建 dll 文件的构建脚本(并将其重命名为 .pyd),但现在 Python 似乎找不到它。目前的情况是这样的:

我在同一个目录中有一个 call.py 和一个 testing.pyd。从这个文件夹中,我调用“python call.py”命令。call.py 只有一行

import testing

如果 testing.pyd 已经编译为 32 位,64 位 Python 说的很明显

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

如果 testing.pyd 已编译为 64 位,则 64 位 Python 表示

ImportError: DLL load failed: The specified module could not be found.

我想说 .pyd 文件的名称完全相同。如果我使用 32 位 Python,32 位编译库可以工作,64 位编译库说它不是一个有效的应用程序,这是预期的。

有人会碰巧知道问题出在哪里吗?64 位 DLL 是否必须以不同的方式命名?这可能与 Python 查找模块的路径有关吗?正如我所说,DLL 和 .py 在同一个文件夹中。

编辑:32 位 Python 是 3.8 版,64 位是 3.6。我在 Windows 10(64 位)上运行

标签: pythonpython-3.xdllmodule

解决方案


推荐阅读