首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Visual中根据给定的.pyd输出构造python代码?

如何在Visual中根据给定的.pyd输出构造python代码?
EN

Stack Overflow用户
提问于 2019-07-30 19:48:53
回答 1查看 338关注 0票数 0

我正在尝试开发一个使用C++与python集成Pybind11功能的项目。我对C++相当熟悉,但对Python不是很熟悉。我有以下格式的文件,我为一个C++项目开发了这些文件。

输出的C++ as: cppproject.pyd

C++函数我想集成: int ( int,int)

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

我有我需要的所有文件。但是我现在需要在Python中运行add函数,并且我一直在讨论如何编写代码。

我试过了

代码语言:javascript
复制
from cppproject import example
example.add(1, 2)

但它给了我一个例外:

代码语言:javascript
复制
dynamic module does not define module export function (PyInit_cppproject)

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

代码语言:javascript
复制
#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中的一种解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-30 20:12:20

如果您将文件外的example.pyd命名为“文件外”,就应该有效。

然后:

代码语言:javascript
复制
from example import add

另一种选择是:

代码语言:javascript
复制
PYBIND11_MODULE(cppproject, m) {

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

...

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57279051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档