我们在boost库下,我们很容易可以实现C++与Python的混合编程,现在我们想在C++下使用boost::python::import其他路径下的模块,我们该如何是好呢?
- try
- {
- using namespace boost::python;
-
- object main_module = import( "__main__" );
- object main_namespace = main_module.attr( "__dict__" );
- //object sys = import( "sys" );
- object ignored = exec(
- "import sys
"
- "sys.path.append("./python")
", main_namespace );
- //ignored = exec( "print sys.path", main_namespace );
- }
- catch ( ... )
- {
- PyErr_Print();
- }
上述,我们使用Python的sys模块来帮助我们注册当前目录下的python目录到python的import目录,于是我们就可以引用其他路径下的模块了。
- import sys
- sys.path.append("./python")