我有一個間歇性錯誤,導致我的Python模塊崩潰,並且我假設這是因爲沒有在c代碼中獲得正確的refcounts而發生內存錯誤。我有一些代碼從遠程位置隨機獲取響應。根據收到的數據,它需要更新我應該在Python中訪問的數據變量。什麼是實現這一目標的最佳方式?下面的代碼大部分時間都在運行,並且它能夠正常工作,但是當它沒有崩潰Python時(調出Visual Studio調試盒)。謝謝。從c更新python變量
if (event == kResponseEvent) {
list = PyList_New(0);
for (i = 0; i < event->count; i++) {
PyList_Append(list, Py_BuildValue("{s:i, s:s}",
"id", event->id,
"name", event->name));
}
PyModule_AddObject(module, "names", list);
}
我張貼這是一個評論,而不是一個答案,但我已經普遍認爲,將C部分編譯爲共享庫並使用ctypes比使用擴展庫更易於管理。 – 2010-02-09 18:09:15
謝謝 - 我會研究這一點,尤其是因爲我比Python更熟悉Python。 – jeffaudio 2010-02-09 18:15:12
Cython是一個爲C庫提供Python綁定的更加平滑的選項。 – 2010-02-09 18:18:54