c 呼叫python遇到的坑

2021-10-25 04:13:20 字數 660 閱讀 4986

簡單的記錄一下,僅供參考。

這句好像一定要呼叫,否則py_initialize()就會異常,可能跟路徑有關。不知道怎麼設定可以不用呼叫這一句?

2 處理python函式返回值的時候,如果返回值是單個字串,以下寫法是對的:

pyobject* pret = pyobject_callobject(pfunc, args);

char *sourcecode;

pyarg_parse(pret, "s", &sourcecode);

注意: 接收返回字串的sourcecode只能定義成 char *,而且要傳入&sourcecode,。

類似以下的寫法都不行:

char sourcecode[100];

pyarg_parse(pret, "s", &sourcecode);   //亂碼,即使沒有中文

char *sourcecode;

pyarg_parse(pret, "s", sourcecode);   //接收的字串無效

網上還有人說使用pystring_asstring,但是python3.+這個函式已經沒有了,說是被pybytes_asstring這個函式取代

但是試了一下pybytes_asstring接收到的字串也會亂碼(確定沒有中文字元返回)。不知道為什麼,有知道的童鞋可以說說哈。

c呼叫python遇到的那些坑

首先得保證安裝完整python的元件 我的是debian系統 apt get install python dev 編譯c程式時候不能簡單的 gcc c 因為會找不到相關的標頭檔案 需要gcc c wall i usr include python2.7 lpython2.7 如果你的python安...

c 呼叫python的方法和坑

1.ironpython 這個東西用.net做了乙個pyhon直譯器,理論上來說這個東西可以做到和c c 呼叫pyhton一樣。實際上東西我沒咋研究,因為只支援py2。坑的一匹 順帶一提,這個東西是乙個非微軟維護的開源專案,用起來沒有巨硬的支援的。2.使用命令列間接呼叫 這是網上實際使用較多的一種方...

python 遇到的各種坑

錯誤 unbound method read must be called with rawconfigparser instance as first argument got str instance instead 解答 因為read不是靜態方法,所以必須例項化才能使用 錯誤 valueerr...