您需要要求PySys_SetArgv(int argc, char **argv, int updatepath)
相对进口工作。这会将执行脚本的路径添加到sys.path
if updatepath
is0
(更多信息,请参考文档)。
以下应该做的把戏
#include <Python.h>
int
main(int argc, char *argv[])
{
Py_SetProgramName(argv[0]); /* optional but recommended */
Py_Initialize();
PySys_SetArgv(argc, argv); // must call this to get sys.argv and relative imports
PyRun_SimpleString("import os, sys\n"
"print sys.argv, \"\\n\".join(sys.path)\n"
"print os.getcwd()\n"
"import thing\n" // import a relative module
"thing.printer()\n");
Py_Finalize();
return 0;
}