在用 C 编写 Python扩展时,我只是想测试一些东西,但意识到我不能PyObject*
从 C 构建 s int
。这是一个演示问题的可编译代码片段(#include <Python.h>
如果不是在 Mac 上,您可能必须这样做),
#include <Python/Python.h>
int main(){
PyObject* obj = Py_BuildValue("i", 42);
return 0;
}
但这导致Segmentation fault: 11
. 基于 Xcode 的 LLDB,调用时看起来有问题PyInt_FromLong
?
如果我尝试做同样的事情但使用double
,
PyObject* obj = Py_BuildValue("d", 42.0);
它工作得很好......我在网上找不到任何东西并且没有想法 - 任何帮助表示赞赏。