Numpy 从Cython调用PyArray\u SearchSorted--3或4个参数?
我试图使用Cython提供的NumPy的C API来使用Numpy 从Cython调用PyArray\u SearchSorted--3或4个参数?,numpy,cython,Numpy,Cython,我试图使用Cython提供的NumPy的C API来使用PyArray\u SearchSorted 当像PyArray\u SearchSorted(value,point,NPY\u SEARCHLEFT)那样调用它时,我得到了GCC错误:error:函数调用的参数太少,预期为4个,有3个 另一方面,当我像PyArray\u SearchSorted(value,point,NPY\u SEARCHLEFT,NULL)那样调用它时,Cython提供了一个错误:调用的参数数目错误(预期为3,得
PyArray\u SearchSorted
当像PyArray\u SearchSorted(value,point,NPY\u SEARCHLEFT)
那样调用它时,我得到了GCC错误:error:函数调用的参数太少,预期为4个,有3个
另一方面,当我像PyArray\u SearchSorted(value,point,NPY\u SEARCHLEFT,NULL)
那样调用它时,Cython提供了一个错误:调用的参数数目错误(预期为3,得到4)
仔细观察,函数签名as和as之间似乎存在差异
我知道searchsorted的sorter
参数只出现在NumPy 1.7.0中,但是向后兼容性不是NumPy C API的保证之一吗?还是这只是一只赛昂虫子
如果有必要的话,我将在OS X上使用conda中的Cython 0.21.1、NumPy 1.9.1和Python 2.7。看起来这一更改发生在1.6版和1.7版之间,在此提交中:
我相信这肯定是一个bug,但不幸的是,这种特定的bug即使在高标准的努力下也很容易溜进来。需要像严格的ABI一致性测试套件这样的东西来一致地捕获这些错误。为了澄清,这是一个NumPy错误,是吗?虽然在这一点上,更改Cython包含比更改NumPy更有意义?是的,这是一个NumPy bug。我认为在事情发生这么久之后,在NumPy做点什么是不可取的,因为1.7、1.8和1.9都是一致的。可能正确的做法是更新Cython,并在NumPy API文档中添加一个关于它的文档警告注释。