python - 集成 Python 和 C++ MacOS PyModuleDef_HEAD_INIT 未声明

标签 python c++ xcode macos

我在 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/

相关文章:

C++ Qt 写入 unix 套接字

c++ - 堆上的对象

ios - 具有与多个子类共享的 BaseGame 类的单个 GKScene

ios - Xcode 7 不显示启动图像

python 3 : Asterisk in print function

python - os.path 如何映射到 posixpath.pyc 而不是 os/path.py?

Python正在向多个实例添加值

c++ - 如何使此函数使用 getline 读取字符串并使其与 int 的行为相同?

ios - SwiftUI无法使多行路径工作

python - Apache 使用 mod_wsgi 处理多个域