python - 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 位)上运行
解决方案
推荐阅读
- javascript - 如何在 Store 中使用 Vue 插件?
- android - Android:输入键移动到下一个EditText
- html - 在框内创建引导 HTML/CSS 框
- amazon-athena - 如何处理 Athena 结果文件?
- r - 使用 Diff 函数计算日志返回
- javascript - 顺序执行操作时 Rxjs 与 concat 运算符有关的问题
- jquery - 用于滚动条的引导模态 jquery 函数和动态模态高度在 Firefox 上无法正常工作
- python - 为什么 Pandas Series.isin 适用于字符串而不适用于数字?
- python - Python - ETF 每日数据网络抓取
- git - git pull --rebase -- 是远程重新定位到本地分支吗?