2010-05-26 63 views
5

我需要在基於C的應用程序中運行Python腳本。我能夠從Python庫導入標準模塊,即: 在C中嵌入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時,系統能夠找到它。

如何將我的應用程序與罐頭連接起來? 我試過將PYTHONPATH設置爲我的工作目錄。

回答

8

與交互式解釋器一樣,嵌入Python庫不會將''添加到sys.path。使用PySys_SetPath()添加相應的目錄。噢嘿,look what I found

+0

對不起;我是Python的新手。你是什​​麼意思 ''? – Drew 2010-05-26 23:59:04

+0

空字符串。這意味着'sys.path'中的當前路徑。 – 2010-05-26 23:59:26

+0

我得到它的工作...雖然我不確定如何,並試圖在另一臺機器上覆制結果。我試過使用sys.path.append以及手動連接代表sys.path和我想要的路徑的字符串。似乎我不能同時擁有系統路徑和我的路徑。 感謝您的幫助。 – Drew 2010-06-01 20:55:03

-1

我發現這更有力的工作,

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