我正在尝试使用来自Cython的NumPy的C API来使用PyArray_SearchSorted。
当我像PyArray_SearchSorted(values, point, NPY_SEARCHLEFT)一样调用它时,我得到GCC错误:error: too few arguments to function call, expected 4, have 3。
另一方面,当我像PyArray_SearchSorted(values, point, NPY_SEARCHLEFT, NULL)一样调用它时,Cython提供了一个错误:Call with wrong number of arguments (expected 3, got 4)。
更仔细地看,作为当前在NumPy中定义和在Cython中定义的包括的函数签名之间似乎存在差异。
我知道搜索排序的sorter参数只出现在NumPy 1.7.0中,但是向后兼容性不是NumPy C的保证之一吗?或者这只是一个Cython错误?
如果有关系,我在OS上使用了来自conda的Cython0.21.1、NumPy 1.9.1和Python2.7。
发布于 2015-01-28 03:47:54
在此提交中,似乎在1.6版到1.7版之间发生了此更改:
我相信这绝对是一个错误,但不幸的是,即使是高标准的勤奋,这种特定的错误也很容易进入。需要类似于严格的ABI一致性测试套件,才能始终如一地捕捉到它们。
https://stackoverflow.com/questions/28184211
复制相似问题