c++ - boost::python 和 swig 集成

标签 c++ python swig boost-python

我有两个类,第一个称为“Radish”,第二个称为“RadishCont”。 所有代码都是用C++编写的,需要在python中使用。

Radish 已经使用 SWIG 接触了 python;相反,RadishCont 已使用 boost::python 公开。

我需要在 RadishCont 类中添加一个具有以下语法的方法:

Radish* get_radish()
{
    return &radish;
}

其中“radish”是 RadishCont 中包含的 Radish 实例。

当我执行 python 代码时,我收到此异常:

TypeError: No Python class registered for C++ class Radish

所以,我的问题是:如何使这个方法在 python 中工作而不使用 SWIG 重写 RadishCont ?

最佳答案

我非常确定您最好重写 SWIG 界面以包含新功能。 SWIG 对类/函数使用内部注册系统,该系统与 boost::pythons 系统不兼容(或者至少不是开箱即用的)。

关于c++ - boost::python 和 swig 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7915965/

相关文章:

python - 如何在 Pandas Dataframe 中跨行和列累积链接值?

c++ - Python 提示 SWIG 模块不存在

java - 定义一个 swig 接口(interface)文件,用于从某个头文件生成每种类型的包装器

C++: vector "corrupting"的第一个元素

c++ - C++命令行软件

Python:如何找到匹配的数据条目并在两个数据集之间执行高效计算

python - Swig、python 和输出字符串

c++ - Qt Designer 中的自定义菜单操作

c++ - VC++6.0 : too many actual parameters

Python 时区偏移错误?