我的Python软件包在构建时需要numpy才能编译cython扩展。如果环境中不存在numpy,则运行python setup.py install
将会失败。
我已在线阅读有关内容,可以在setup_requires
设置函数调用中添加一个setup.py
部分以使此功能正常运行。因此,我完成了以下操作:
setup(
setup_requires=[
"setuptools>=18.0",
"numpy>1.14",
],
install_requires=[
"numpy>1.14",
...
],
)
但是,当我这样做时,travis CI失败
ValueError:numpy.ufunc的大小已更改,可能表明二进制不兼容。预期从C标头获得216,从PyObject获得192
但是,如果我确保可用numpy并删除setup_requires
部分,则可以使用。
我对这种行为感到困惑,几乎好像正在使用两种不同版本的numpy?我无法想象还有什么可能导致这种不兼容。
我的问题是1.为什么不起作用,并且2.什么是构建软件包时确保安装numpy的规范方法。