setuptools setup_requires和install_requires的行为不同

时间:2019-07-02 08:10:11

标签: python numpy

我的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的规范方法。

0 个答案:

没有答案