我在 XCode 上开发时遇到了这个问题。无法在网上找到任何东西。我什至不知道这个问题是与 XCode 相关还是一个普遍问题。
所以这是我的示例代码:
#include "myModule.h"
#include <Python/Python.h>
int Cfib(int n){
if (n<2){
return n;
}
else{
return Cfib(n-1)+Cfib(n-2);
}
}
static PyObject* fib(PyObject* self, PyObject* args){
int n;
if (!PyArg_ParseTuple(args, "i", &n)){
return NULL;
}
return Py_BuildValue("i", Cfib(n));
}
static PyObject* version(PyObject* self){
return Py_BuildValue("s", "Version 1.0");
}
static PyMethodDef myMethods[] = {
{"fib", fib, METH_VARARGS, "Calculate the fibonacci numbers."},
{"version", (PyCFunction)version, METH_NOARGS, "Tells us the version of our module."},
{NULL, NULL, 0, NULL}
};
static struct PyModuleDef myModule = {
PyModuleDef_HEAD_INIT, // Use of undeclared indentifier PyModuleDef_HEAD_INIT
"myModule",
"Fibnoacci Module",
-1,
myMethods
};
有谁知道要做什么才能拥有 ** PyModuleDef_HEAD_INIT**?我可以声明要克服的默认方法头定义值是多少?
或者我应该转向 Linux 环境进行进一步开发?
谢谢。
最佳答案
您在 myModule
定义中使用了 PyModule_HEAD_INIT
,但这不是 CPython 声明的标识符。您可能正在考虑 PyModuleDef_HEAD_INIT
(注意 Def
)。
至于是否应该在Linux下开发:到目前为止,您遇到的问题并不是您的工具的问题。转换似乎不太可能在这方面有所帮助。
关于python - 集成 Python 和 C++ MacOS PyModuleDef_HEAD_INIT 未声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52387297/