从 C 代码构建 Python 模块失败

我正在阅读有关如何绑定 Python 和 C 的教程。我使用的是 Python v3.7.1,所以我不得不使用新的 Python 接口(与示例不同),所以现在我有:


加法器


#include <Python.h>


static PyObject *addList_add(PyObject *self, PyObject *args)

{

    PyObject *listObj;


    if (!PyArg_ParseTuple(args, "O", &listObj))

        return NULL;


    Py_ssize_t length = PyList_Size(listObj);

    long i, sum = 0;

    for (i = 0; i < length; i++)

    {

        PyObject *temp = PyList_GetItem(listObj, i);

        long elem = PyLong_AsLong(temp);

        sum += elem;

    }


    return Py_BuildValue("i", sum);

}


static char addList_docs[] = "add(): add all elements of the list\n";


static PyMethodDef addLust_funcs[] = {

    {"add", (PyCFunction)addList_add, METH_VARARGS, addList_docs},

    {NULL, NULL, 0, NULL}};


static struct PyModuleDef addList = {

    PyModuleDef_HEAD_INIT,

    "addList",

    addList_docs,

    -1,

    addLust_funcs};


PyMODINIT_FUNC PyInit_addList(void)

{

    return PyModule_Create(&addList);

}

似乎一切都正确,我可以通过调用该addList.add()函数来运行 Python 代码。但是在构建模块时,我得到了这个输出

呼如林
浏览 209回答 1
1回答

胡子哥哥

错误消息说:version.replace(' ','.') AttributeError: 'float' 对象没有属性 'replace'您的构建脚本说:version=1.0显然它需要一个字符串,而不是一个浮点数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python