问题标签 [pyd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
12 浏览

python - 从 .pyd 提升 python 附加到 InitTab

我正在尝试使用 boost 向 python 公开一个 c++ 类,并在 c++ 端提取一个在 python 中定义的对象。

我在文件 MyInt.h 中定义了我的 c++ 类:

如果我在项目中定义 BOOST_PYTHON_MODULE 一切正常。例如这段代码运行良好:

现在,如果我使用相同的 BOOST_PYTHON_MODULE 构建 Example.pyd 文件,我可以将其导入 python,但以下 c++ 代码不起作用:

似乎 PyImport_AppendInitTab 没问题,但抛出以下错误:

TypeError:没有注册的转换器能够从这个 MyInt 类型的 Python 对象中提取对 struct MyInt 类型的 C++ 引用

我该如何解决这个错误?是否可以从 pyd 文件注册转换器?

谢谢

0 投票
0 回答
34 浏览

python - 用 cython 制作 .pyd 后,我只能调用“Pyinit_”函数

我有一个带有一些简单功能的 main.py。在使用 cython(使用 easycython)制作 .pyd 后,我尝试在 LabVIEW 中将该 pyd 称为 dll。LabVIEW 只显示 Pyinit_-Function。也许我错过了一些明显的东西,但我找不到解决方案。

导入 .pyd 后来自 LabVIEW 的 屏幕截图:来自 LabVIEW的屏幕截图

0 投票
0 回答
21 浏览

python - 如何在dll上指向python,它应该在运行时链接到导入的扩展python模块?

我有一个用 cmake 构建的扩展 python 模块。模块需要在运行时链接到它的第三方 libutil.dll。模块和 libutil.dll 都打包到 wheel 中。

有没有一些方法可以帮助 python 通过 setup.py 配置找到模块的 libutil.dll?模块和 .dll 位于包中的同一文件夹中。

我调查了一些方法,但都被拒绝了:

  1. 在 PATH 变量或其他一些环境变量中添加 dll 的路径;
  2. 从存储 dll 的目录启动 python

setup.py 有下一个内容:

该项目具有以下结构: