为了账号安全,请及时绑定邮箱和手机立即绑定

从 C 代码构建 Python 模块失败

从 C 代码构建 Python 模块失败

呼如林 2021-08-14 17:49:03
我正在阅读有关如何绑定 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 代码。但是在构建模块时,我得到了这个输出
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

错误消息说:

version.replace(' ','.') AttributeError: 'float' 对象没有属性 'replace'

您的构建脚本说:

version=1.0

显然它需要一个字符串,而不是一个浮点数。


查看完整回答
反对 回复 2021-08-14
  • 1 回答
  • 0 关注
  • 208 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号