【发布时间】:2014-01-22 10:12:34
【问题描述】:
使用下一行
pModule = PyImport_Import(pName);
只从当前目录加载模块。
但是我想从其他地方加载什么?有没有一种巧妙的方法?
PyRun_SimpleString("import sys\nsys.path.append('<dir>')");
有效,但有点难看 - 我正在寻找更好的方法
谢谢!
【问题讨论】:
-
真的是
<dir>在python路径中吗? AFAIKPyImport_Import(<module-name>)应该与 python 的import <module-name>相同。如果它不在 python 路径中,那么 为什么 你希望它能够工作吗?当然你可以做sysModule = PyImport_Import("sys"),然后使用PyObject_GetAttr访问sys.path并调用PyList_Append,但它似乎比使用PyRun_SimpleString更长(尽管它应该有更少的开销,因为它不需要编译并解释代码。 -
@Bakuriu - 我刚刚找到了答案 - 下面
标签: python c python-embedding