在C中嵌入Python:导入本地模块时遇到问题
我需要在一个基于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
我发现这个方法更可靠,效果更好。
PyObject *sys = PyImport_ImportModule("sys");
PyObject *path = PyObject_GetAttrString(sys, "path");
PyList_Append(path, PyUnicode_FromString("."));
9
把Python库嵌入到你的程序里时,和在交互式解释器里不一样,它不会自动把''
加到sys.path
里。你可以使用PySys_SetPath()
这个方法来手动添加正确的目录。
哦,嘿,看看我找到的东西。