我尝试使用来自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)
。
仔细观察,功能签名currently defined in NumPy和defined in Cython's includes之间似乎存在差异。
我知道searchsorted的sorter
参数只出现在NumPy 1.7.0中,但不是向后兼容性与NumPy C API的保证之一吗?或者这只是一个Cython错误?
如果重要,我在OS X上使用来自conda的Cython 0.21.1,NumPy 1.9.1和Python 2.7。
答案 0 :(得分:3)
在此提交中,版本1.6和1.7之间发生了此更改:
我相信这绝对是一个错误,但遗憾的是,即使是高标准的勤奋,这种特殊的错误也很容易陷入困境。需要像严格的ABI一致性测试套件那样一致地捕捉这些。