Python-SystemError:PyObject调用中没有错误的NULL结果

拨浪鼓

故事:为了将C的更快计算速度用于现有Python代码,我正在尝试从C到Python进行接口。通过传递NumPy数组,我已经取得了一些成功-但现在似乎出现了问题,我无法解决。这是代码:

#define FORMAT_VALUE_T  "d"
char format_buffer[32];

typedef struct
    {
        PyObject_HEAD
        PyArrayObject *invmat;
        unsigned order;
        value_t weight, *buffer;
    } Det;

    typedef double value_t;

    typedef struct
    {
        PyObject_HEAD
        Det *det;
        value_t *row, *covs, ratio, star;
    } DetAppendMove;

    static int append_init(DetAppendMove *self, PyObject *args, PyObject *kwds)
    {
        value_t star, *temp;
        PyArrayObject *row, *col;
        PyObject *result = Py_BuildValue("(i)",1);
        Det *dete;

        snprintf(format_buffer, sizeof(format_buffer), "%s%s", "O!O!O!", FORMAT_VALUE_T);
        if (PyArg_ParseTuple(args, format_buffer, &DetType, &dete, &PyArray_Type, &row, &PyArray_Type, &col, &star))
        {   
            self->det = dete;
            temp = (value_t*)self->det->buffer;
        }
        else
        {
            result = Py_BuildValue("(i)",-1);
        }
        return result;
    }

到目前为止,它还没有真正做任何事情,我只是想检查是否能够传递这些数组,正如标题所示,我收到以下错误消息:

SystemError:NULL结果,PyObject调用中没有错误

这很有趣,因为我已经传递了一些数组一次(以相同的方式进行..),通常这些数组甚至是100x100。通常人们抱怨非常大的阵列。

我在64位计算机,Python V2.7.6和Numpy 1.8.2上使用Ubuntu 14.04

如果你们中的一个能帮助我,那将是非常棒的-我不知道这里出了什么问题。

编辑:我还没有弄清楚这个问题,但是有时它可以正常工作,有时它会因上面的错误而崩溃。.我绝对不知道这可能是什么-有人吗?

拨浪鼓

最近有人在另一篇文章中向我展示了答案:

当您从暴露给python的ac函数返回NULL时,必须先设置错误消息,因为返回NULL意味着发生了错误。

如果发生错误,并且您因此而返回NULL,则使用PyErr_SetString();如果未发生错误,则使用

Py_RETURN_NONE;

谢谢iharob,帮了很多忙!

L.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python中的“ SystemError:<class'int'>返回带有错误集的结果”

列表中项目的Python索引没有错误?

在Python中尝试直到没有错误

不同的缩进在Python中没有错误

在Python中中断循环而没有错误-Selenium

在 selenium python 中自动搜索过程没有错误但没有输出

python脚本后没有打印,没有错误

Python/MySQL,没有错误但没有插入数据

python找不到文件错误,cmd中没有错误

导入错误:python 用于 3.7 但在 2.7 中没有错误

Python 2.7.6-Sublime 2中的UnicodeEncodeError,但终端中没有错误

python脚本在执行过程中停止,没有错误

将Unicode转换为ASCII且Python中没有错误

MySQL python连接器代码中止而没有错误(MySQL文档中的代码)

使用python的Untar文件没有错误/警告?

Python多线程模块崩溃而没有错误消息

在python中调用函数时没有文件错误

如何修复Python C扩展中的“ SystemError:<内置函数'名称'>返回NULL而未设置错误”

PyObject_CallMethod有时在调用python方法时出现段错误

如何检查python中是否有错误

在所有错误消息中打印python版本

Python Mypy对TypeVar(bound = Union [A,B])返回类型的检查没有错误,而TypeVar(A,B)却有错误

虽然没有错误,但我的 python pyw 文件没有打开

Maven命令mvn从终端运行时没有错误,但没有从python运行

与MySQL通讯时,我的Python脚本没有错误,仍然没有更改

瓶子在Python3中错误处理JSON数据,但在Python2中没有错误处理

从python调用bash命令时出现“致命:太多参数”,直接在git bash中使用同一命令没有错误

python connection.execute中的COPY-FROM:将csv转换为postgres-没有错误但也没有数据

Python Tkinter 应用程序不会加载。没有错误。(Python)