我有一个间歇性错误,导致我的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