gpt4 book ai didi

python - ctypes 上的 PyObject_Str 段错误通过了字典

转载 作者:太空宇宙 更新时间:2023-11-04 04:37:47 25 4
gpt4 key购买 nike

所以,我有这个 C 代码:

#include "Python.h"

void check(PyObject* pdict)
{
printf("About to instantiate PyString!\n");
PyObject* mdstr = PyObject_Str(pdict);
printf("Python dict: %s\n", PyString_AsString(mdstr));
}

我能够编译并链接到名为“libTmp.so”的共享库

然后我使用这个 ctypes 代码片段来调用“检查”功能:

from ctypes import cdll, py_object, CFUNCTYPE, POINTER
SO = cdll.LoadLibrary("libTmp.so")
prototype = CFUNCTYPE(py_object, py_object)
check = prototype(('check',SO))

但是当我尝试调用“check”函数时,我从以下行得到了一个段错误:

PyObject* mdstr = PyObject_Str(pdict);

check({'one':1}) 例如会出现段错误...

我怀疑这是我对正确用例的误解还是 unicode 问题?

如有任何想法,我们将不胜感激。

谢谢

最佳答案

事实证明,Mr. Mark Tolonen 已经在 StackOverflow 的其他地方询问和回答了这个问题

https://stackoverflow.com/a/11218281/267157

关于python - ctypes 上的 PyObject_Str 段错误通过了字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29357326/

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