元包,提供支持给定Python版本和平台的旧版NumPy。如果平台上的wheels只针对较新版本的NumPy可用,则指定该NumPy版本。
项目描述
关于
~~ 以下是不适应的oldest-supported-numpy的原始Readme ~~
这是一个元包,可以用于pyproject.toml文件,在构建时自动提供支持给定Python版本和平台的旧版NumPy。对于具有预构建wheels的Numpy平台,提供的版本也具有预构建的Numpy wheel。
使用旧版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...
]
可以被替换为
[build-system]
requires = ["wheel", "setuptools", "oldest-supported-numpy"]
随着新Python版本的发布,pyproject.toml文件无需更新。
问答
为什么在这个仓库中使用install_requires定义Numpy的版本锁定?
Numpy的版本锁定是在setup.cfg
文件中以install_requires
依赖项的形式定义的,而不是在pyproject.toml
文件中作为构建时依赖项。这是故意的,因为实际上Numpy并不是构建oldest-supported-numpy
的轮子所必需的。我们在这里需要确保,当oldest-supported-numpy
被安装到使用它的软件包的构建环境中时,Numpy也会作为构建环境中的runtime
依赖项被安装。
换一种方式来考虑这个问题,因为我们只发布(通用)oldest-supported-numpy
的轮子,这个轮子不包含pyproject.toml
、setup.cfg
或setup.py
代码——它只包含元数据,包括当安装oldest-supported-numpy
时由pip安装的依赖项。
如果我的软件包需要Numpy的最新版本,我能使用这个方法吗?
在许多情况下,即使你的软件包可能需要比这里锁定的版本更新的Numpy版本,这通常是一个运行时需求,即用于运行(而不是构建)你的软件包。在许多情况下,除非你使用Numpy C API的最近功能,否则你仍然可以使用较旧的Numpy版本来构建你的软件包,因此你仍然可以使用oldest-supported-numpy
。你仍然可以在install_requires
中强加更近期的Numpy需求。
关于给这个软件包起一个更吸引人的名字,有什么看法吗?
就软件包名称而言,当前名称并不非常吸引人,但它非常具有描述性。这个软件包仅用于在pyproject.toml
文件中定义构建时依赖项,所以一个描述性的名称比一个吸引人的名称更重要!
如果我认为其中一个锁定是错误的或过时的,该怎么办?
如果你认为有问题或可以改进的地方,请随时提交一个问题或拉取请求!
项目详情
散列 for pymor-oldest-supported-numpy-2023.1.4.tar.gz
算法 | 散列摘要 | |
---|---|---|
SHA256 | b99301a2074c2cc66fd486e75ac61c71336d121cc86db570bb19eb9199fc4b20 |
|
MD5 | f841b58cd136e02c127d46d08d79c591 |
|
BLAKE2b-256 | 7b0810b519896a46d5cf4177d8dc80465a66c17c46b9aeff0ba7543adf0caa7b |
哈希 用于 pymor_oldest_supported_numpy-2023.1.4-py3-none-any.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | c6c77c3784c2c98ba3267c15ccb2703db0981c60e8bbc92774792ea010469bf8 |
|
MD5 | 77fe91106352c338d07e50a903297965 |
|
BLAKE2b-256 | f139bc0038224d248f646c927ae17fabf23ff92449224bb005a712eea1416d81 |