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

标签 python c api python-2.7

所以,我有这个 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/

相关文章:

c++ - C 编译器错误 : cdefs. h 未找到

api - Shopify 液体 : How can I conditionally include snippets in Shopify liquid?

javascript - AWS 上的 Python 获取远程 IP 地址

python - Python Web 应用程序的架构解决方案

c - 使用 gcc 编译/转换,matrix.h : No such file or directory

c++ - IUnknown 中的 addref 和 release,它们实际上是做什么的?

api - 使用 openid-connect 进行身份验证 spa 和 Rest api

python - 如何在 Twitter API 中区分个人帐户和公司帐户?

Python - 从另一个文件写入新文件

python - 从 Pandas 中的 GroupBy 对象中获取所有键