我正在尝试开发一个使用C++与python集成Pybind11功能的项目。我对C++相当熟悉,但对Python不是很熟悉。我有以下格式的文件,我为一个C++项目开发了这些文件。
输出的C++ as: cppproject.pyd
C++函数我想集成: int ( int,int)
Pybind11模块:PYBIND11_MODULE(例如,m){.}
我有我需要的所有文件。但是我现在需要在Python中运行add函数,并且我一直在讨论如何编写代码。
我试过了
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中的一种解决方案。
发布于 2019-07-30 20:12:20
如果您将文件外的example.pyd命名为“文件外”,就应该有效。
然后:
from example import add另一种选择是:
PYBIND11_MODULE(cppproject, m) {
auto example = m.def_submodule("example");
...
}https://stackoverflow.com/questions/57279051
复制相似问题