我正在使用Boost.Python將解釋器嵌入到我的C++可執行文件中,並執行一些預先編寫的腳本。我有它的工作,以便我可以調用python文件中的函數,但我想要使用的Python代碼導入外部文件,這些導入失敗,因爲'沒有命名模塊'。如果我直接從python運行腳本,那麼所有工作都按預期工作。導入如何從python文件中使用Boost.Python
所以我的問題是什麼是正在通過C++綁定運行的Python腳本導入模塊的方式是什麼?
C++代碼:
#include "boost/python.hpp"
int main(int argc, char** argv)
{
try
{
Py_Initialize();
boost::python::object test = boost::python::import("__main__");
boost::python::object testDict = test.attr("__dict__");
boost::python::exec_file("test.py", testDict, testDict);
}
catch(boost::python::error_already_set& e)
{
PyErr_Print();
}
return 0;
}
Python代碼:
import ModuleX
對於Python3,將'PyString_FromString'替換爲'PyBytes_FromString' – schuess 2017-07-01 02:17:50