我有一个可以通过Python代码扩展的应用程序,但是扩展代码也将使用来自应用程序的代码。我正在努力实现的目标:
//已包装_模块.cpp在
void api_call()
{
std::cout << "API call" << std::endl;
}
BOOST_PYTHON_MODULE(API)
{
boost::python::def("api_call", api_call);
}
//扩展名.py在
^{pr2}$//应用程序_主.cpp在
int main()
{
// initialize interpreter
// load "extension.py"
// make "API" module available for "extension.py", so "import API" works
// load "myExtension" from "extension.py"
// myExtension()
// <see "API call" in console output>
return 0;
}
““扩展名.py“永远不会作为独立脚本调用,它将始终由c++应用程序加载-因此我不需要单独构建API.dllpython要导入的模块-还是要导入?在
这是可能的,但并不完全直接。在
您需要使用未记录的生成函数名,在您的大小写
initAPI
(它由单词init
和模块名组成,区分大小写)。在调用Py_Initialize
之前,需要将此函数作为参数传递给PyImport_AppendInittab
。在下面是一个完整的工作程序,它嵌入Python并用您的模块扩展它,然后运行一个使用您的模块的简单程序。在
相关问题 更多 >
编程相关推荐