Ket*_*eto 16 setuptools python-packaging python-poetry pyproject.toml pep517
Pip 支持该pyproject.toml文件,但到目前为止,新模式的所有实际使用都需要一个 3rd 方工具来自动生成这些文件(例如,诗歌和 pip)。不像setup.py已经是人类可写的,pyproject.toml不是(还)。
[build-system]
requires = [
"setuptools >= 40.9.0",
"wheel",
]
build-backend = "setuptools.build_meta"
Run Code Online (Sandbox Code Playgroud)
但是,此文件不包含包依赖项(如 PEP 621 中所述)。Pip 确实支持使用安装包,pyproject.toml但 pep 没有指定如何pyproject.toml为官方构建系统编写包依赖项setuptools。
我如何编写包依赖项pyproject.toml?
相关的 StackOverflow 问题:
这个问题要求一种自动生成的方法pyproject.toml,我的问题有所不同,因为我要求使用人工编写的pyproject.toml.
sin*_*roc 26
PEP 621
2020 年 12 月
有一个称为PEP621的标准,它指定项目的元数据(包括依赖项)应如何在pyproject.toml文件中布局。
2021 年 1 月
2021 年 5 月
更多构建后端添加了对PEP 621 的支持,例如:
我的问题有所不同,因为我要求人工编写
pyproject.toml
该pyproject.toml文件是“人类可写的”(以及setup.cfg)。我将在这里给出setuptools和诗歌的答案。
但首先,重要的是要知道在这种情况下setuptools和诗歌的行为类似于所谓的构建后端,如今有多个这样的后端可用,setuptools只是其中之一。其他构建后端包括flit、pymsbuild、pdm等。他们中的一些人希望他们的配置(包括依赖项)被写入pyproject.toml,有些人希望它在另一个文件中。
设置工具
截至今天(2020 年 10 月),setuptools不支持在pyproject.toml. 您仍然必须编写 asetup.py或 asetup.cfg或两者的组合。
我的建议是尽可能多地写在 中setup.cfg,并且setup.py可以尽可能短:
import setuptools
setuptools.setup()
Run Code Online (Sandbox Code Playgroud)
这样的setup.cfg可能看起来像这样:
[metadata]
name = Thing
version = 1.2.3
[options]
install_requires =
SomeLibrary ~= 2.2
packages = find:
Run Code Online (Sandbox Code Playgroud)
有关依赖项的具体参考:
顺便setup.py说setup.cfg一句,请注意在某些情况下可以完全省略文件,其中一个条件是文件和pyproject.toml文件都存在并且包含所有必要的信息。这是一个pyproject.toml适用于setuptools构建后端的示例:
[build-system]
build-backend = 'setuptools.build_meta'
requires = [
'setuptools >= 43.0.0',
]
Run Code Online (Sandbox Code Playgroud)
最后,还有计划从setuptools的维护者,以允许写入配置pyproject.toml(而不是setup.cfg或setup.py),但我们现在还没有(2020年10月)。
诗歌
在诗歌中,一切都在pyproject.toml.
这个文件可以是手写的。据我所知,没有严格的必要明确安装诗歌本身(诸如pip install和 之类的命令pip wheel可以让你走得足够远)。
该pyproject.toml文件可以很简单:
[tool.poetry]
name = 'Thing'
version = '1.2.3'
[tool.poetry.dependencies]
python = '^3.6'
SomeLibrary = '~2.2'
[build-system]
requires = ['poetry-core~=1.0']
build-backend = 'poetry.core.masonry.api'
Run Code Online (Sandbox Code Playgroud)
参考资料:
| 归档时间: |
|
| 查看次数: |
4537 次 |
| 最近记录: |