提供支持给定Python版本和平台的最旧NumPy的元包。如果平台的控制盘在PyPI上仅适用于较新的NumPy版本,则指定该NumPy版本。
oldest-supported-nump的Python项目详细描述
关于
这是一个可以在pyproject.toml文件中使用的元包 自动提供最旧版本作为生成时依赖项 支持给定Python版本和平台的Numpy。万一 对于Numpy预装轮子的平台,提供的版本 也有一个预制构件车轮。在
使用最旧的可用Numpy版本作为构建时的原因 依赖性是因为ABI兼容性。用旧代码编译的二进制文件 Numpy版本与新的Numpy版本是二进制兼容的,但是 反之亦然。这个元包的存在就是为了处理这个问题 更方便,无需手动在 所有需要它的包裹。在
换句话说:
[build-system]requires=["wheel","setuptools","numpy==1.13.3; python_version=='3.5'","numpy==1.13.3; python_version=='3.6'","numpy==1.14.5; python_version=='3.7'",# more numpy requirements...]
可替换为:
^{pr2}$而且随着新的Python版本的发布,pyproject.toml文件没有 需要更新。在
问答
为什么在这个存储库中使用install\u requires定义Numpy固定?
Numpy版本固定在setup.cfg文件中定义为 install_requires依赖项,而不是作为生成时依赖项 在pyproject.toml内。这是故意的,因为纽比实际上不是 需要生成oldest支持的numpy的轮子。我们需要什么 确保在oldest supported numpy安装到 使用它的包的构建环境,Numpy也会被安装 作为生成环境中的runtime依赖项。在
另一种思考方式是,既然我们只发布(通用) oldest支持numpy的轮子,该轮子不包含pyproject.toml, setup.cfg,或setup.py代码-它只包含元数据,包括 当oldest supported numpy为 安装。在
如果我的软件包需要最新版本的Numpy,我可以使用这个吗?
在许多情况下,即使您的包可能需要 新版本比这里的固定版本要新,这个 通常是运行时的要求,即运行(而不是 建筑)你的包裹。在很多情况下,除非使用 特性的Numpy C API,您仍然可以构建 使用旧版本的Numpy打包,因此您仍将 能够使用oldest支持的numpy。你仍然可以强制 install_requires
给这个包起个更吸引人的名字怎么样?
当前的名称不像包名那样引人注意,但是 很有描述性。此软件包仅用于 pyproject.toml文件,用于定义生成时依赖项, 所以有一个描述性的名字比一个吸引人的名字更重要!在
如果我认为其中一个是错误的或过时了呢?
请随时open an issue 或者,如果你认为有问题或者可以改进的话,请求拉取!在
- 项目
标签: