在C中嵌入Python:导入本地模块时出现问题

时间:2010-05-26 23:51:46

标签: python c import module embedding

我需要在基于C的应用程序中运行Python脚本。我可以从Python库导入标准模块,即:

PyRun_SimpleString("import sys")

但是当我尝试导入本地模块时can

PyRun_SimpleString("import can")

返回错误消息:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named can

当我在IPython中输入命令import can时,系统能够找到它。

如何将我的应用与can链接? 我已经尝试将PYTHONPATH设置为我的工作目录。

2 个答案:

答案 0 :(得分:9)

嵌入Python库不会像交互式解释器那样将''添加到sys.path。使用PySys_SetPath()添加相应的目录。

哦,嘿,look what I found

答案 1 :(得分:-1)

我发现这更有效,

PyObject *sys = PyImport_ImportModule("sys");
PyObject *path = PyObject_GetAttrString(sys, "path");
PyList_Append(path, PyUnicode_FromString("."));