c++ 像boost::python一样导入和导入

gmxoilav  于 2023-01-28  发布在  Python
关注(0)|答案(1)|浏览(137)

我正在做一个项目,它的大部分代码是用C编写的,还有一些是用Python编写的。
有没有办法从C
调用import xxx和/或import xxx as x
我会期待这样的事情:

auto other_mod = boost::python::import("the_other_module");

BOOST_PYTHON_MODULE(pystuff)
{
    boost::python::module_<other_mod>("wrapping_name"); // I just invented this
}

然后在python中可以:

from pystuff import wrapping_name as wn

wn.someFunction()

请注意,我不想在python中执行此操作

import pystuff
import the_other_module

the_other_module中的对象与pystuff中的对象具有相似的目标和依赖关系,因此我不希望用户有一个而没有另一个。
我也知道我可以从the_other_module中获取我想要公开和 Package 的每个对象,但是我不想一个接一个地做。

vzgqcmou

vzgqcmou1#

我不是很远,我只是:

auto other_mod = boost::python::import("the_other_module");

BOOST_PYTHON_MODULE(pystuff)
{
    boost::python::scope().attr("wrapping_name") = other_mod;
}

相关问题