文件结构:
Foo/
list.so
main.cpp
list.cpp
boost_wrapper.cpp
main.cpp 代码:
#include <Python.h>
#include "list.cpp"
int main(int argc, char *argv[]){
PyObject *pimport;
pimport=PyString_FromString("list");
Py_SetProgramName(argv[0]);
Py_Initialize();
PyImport_Import(pimport);
/*PyRun_SimpleString("l=list.LinkedList()");
PyRun_SimpleString("l.insert(\"N\", 9)");
PyRun_SimpleString("l.display()");*/
Py_Finalize();
}
ERROR:
ImportError: No module named list
但是如果我从bash运行python,我就能成功导入模块并使用定义的所有函数。我也尝试使用PyRun_SimpleString导入但没有用。
我怀疑当前的工作目录对Py_Initialize()调用的Python解释器是不可见的。
答案 0 :(得分:0)
在Py_Initialize();
之后添加这些行以附加您的PYTHONPATH
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append(\".\")");