C++使用boost python import 其他路径的模块


我们在boost库下,我们很容易可以实现C++与Python的混合编程,现在我们想在C++下使用boost::python::import其他路径下的模块,我们该如何是好呢?

  1. try  
  2. {  
  3.     using namespace boost::python;  
  4.   
  5.     object main_module = import( "__main__" );  
  6.     object main_namespace = main_module.attr( "__dict__" );  
  7.     //object sys = import( "sys" );   
  8.     object ignored = exec(   
  9.         "import sys\n"  
  10.         "sys.path.append('./python')\n", main_namespace );  
  11.     //ignored = exec( "print sys.path", main_namespace );   
  12. }  
  13. catch ( ... )  
  14. {  
  15.     PyErr_Print();  
  16. }  
上述,我们使用Python的sys模块来帮助我们注册当前目录下的python目录到python的import目录,于是我们就可以引用其他路径下的模块了。
  1. import sys  
  2. sys.path.append('./python')  

相关内容