gpt4 book ai didi

python - 尝试从 C 调用 Python 函数时出现段错误

转载 作者:太空宇宙 更新时间:2023-11-04 00:55:16 24 4
gpt4 key购买 nike

所以,我想从 C 调用一个 Python 回调函数。

在某个时候,函数被发送到 C 并像这样打包成一个元组

PyObject *userData = Py_BuildValue("Oi",py_callback,some_number);

在那个区域的某个地方,我也做 Py_INCREF(py_callback)
在程序的稍后时间,我想调用该函数

PyObject *py_callback;
int some_number;
PyArg_ParseTuple((PyObject*)userData,"Oi",&py_callback,&some_number); // returns true
PyObject *py_result = PyObject_CallFunctionObjArgs(py_callback,
/* ... */
NULL);

最后一次调用抛出一个段错误。你知道为什么它会做这样的事情吗?

最佳答案

当从 Python C API 获得奇怪的行为时,始终值得仔细检查您是否正确管理全局解释器锁(又名“GIL”)的状态:http://docs.python.org/c-api/init.html#thread-state-and-the-global-interpreter-lock

关于python - 尝试从 C 调用 Python 函数时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5090585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com