在有些复杂的 Pythonsetup.py
配置中,通常需要已经存在的其他库才能执行setuptools.setup
. 就我而言,这将是setuptools>=45.0
and cython>=0.29
。现在,我有两个选项来声明这些构建时要求(不要与通常在requirements.txt
文件中找到的标准包安装要求混淆),以便将此项目发送到 PyPI:
- 手动编写要求作为参数
setup.py
的一部分setup_requires
:
#setup.py
from setuptools import setup
#...
setup(
name='bla',
#...
setup_requires = ['setuptools>=45.0', 'cython>=0.29'],
)
- 将这些要求写入PEP518
pyproject.toml
之后的单独文件中:
#pyproject.toml
[build-system]
# Minimum requirements for the build system to execute.
requires = ["setuptools>=45.0", "cython>=0.29"]
它们可以交换吗?应该使用哪一个,为什么?