如何从 Visual Studio 中的给定 .pyd 输出构造 python 代码?

How do I construct python code from a give .pyd output in Visual Studio?

我正在尝试开发一个项目,使用 Pybind11 将 C++ 函数与 python 集成。我对 C++ 非常熟悉,但对 Python 却不是那么熟悉。我有以下格式的文件,是我为 C++ 项目开发的。

C++ 的输出为:cppproject.pyd

我要集成的C++函数:int add(int i, int j)

Pybind11 模块:PYBIND11_MODULE(示例,m){....}

我有我需要的所有文件。但我现在需要 运行 Python 中的添加函数,我对如何编码感到困惑。

我试过了

from cppproject import example
example.add(1, 2)

但它抛出如下异常:

dynamic module does not define module export function (PyInit_cppproject)

python 代码哪里出错了? 如果有帮助,这是我的 C++ 代码:

#include <Python.h>
#include <pybind11/pybind11.h>


int add(int i, int j) {
return i + j;
}


 PYBIND11_MODULE(example, m) {

m.def("add", &add, "A function which adds two numbers");

}

此文件的输出为 .pyd 格式,以便于 python 集成。 编辑:顺便说一句,我正在尝试 运行 C++ 和 Python 项目,作为 Visual Studio 中的一个解决方案。

如果您将输出文件命名为 example.pyd

应该可以工作

然后:

from example import add

或者:

PYBIND11_MODULE(cppproject, m) {

auto example = m.def_submodule("example");

...

}