Python/Numpy错误:在PyObject_Call中无错误的NULL结果

0 投票
2 回答
3414 浏览
提问于 2025-04-16 03:20

我之前从没见过这个错误,网上找的资料也没什么用。我有一个很大的NumPy数组,里面存的是布尔值(也就是True和False)。当我尝试用numpy.dump()来写这个数组时,出现了以下错误:

系统错误:在PyObject_Call中没有错误的NULL结果

这个数组一开始全是False,唯一会改变的就是把一些值设为True,所以我不知道为什么会有值是null。

当我用一个小一点的数组运行同样的程序时,没有出现错误。不过,因为错误发生在写入的步骤,所以我觉得这不是内存的问题。有没有人见过这个错误?

2 个回答

1

这个信息是直接来自CPython解释器的(可以查看abstract.c文件中的PyObject_Call方法)。如果你想更好地理解这个错误信息,可以去Python或NumPy的邮件列表问问,因为这看起来像是C代码中的问题。

你可以写一个简单的例子来展示这个问题,这样你就能把问题缩小到某个模块,然后再找到具体的方法。

1

看起来这个问题可能是因为使用了32位版本的NumPy,而不是64位版本。虽然程序在内存中存放数组没有问题,但如果数组里的元素数量超过2的32次方,它在把数组写入文件时就会出错。

撰写回答