0

阅读 pyproject.toml、python -m pip install、诗歌、flit 等 - 我有几个关于用 pyproject.toml 替换 setup.py 的问题。

我最大的问题是 - toml 文件如何替换 setup.py。意思是,toml 文件不能做 py 文件可以做的所有事情。读到它,poetry 和 flit 完全用 pyproject.toml 替换了 setup.py。虽然 pip 使用 pyproject.toml 来指定构建工具,但仍然使用 setup.py 进行其他所有操作。

一个很好的例子是,pip 目前没有办法直接在 toml 文件中为控制台脚本做入口点,但诗歌和 flit 可以。

我现在的主要问题是;

pyproject.toml 的重点是提供构建系统要求。它是一个元数据文件。因此,仅使用此文件来指定构建系统要求并仍将 setup.py 用于其他所有内容,这不是理想的解决方案。

我很困惑,因为我觉得我们在解决一个相当简单的问题时损失了很多。通过完全使用 setup.py 并用 pyproject.toml 替换它,我们失去了很多我们可以在 setup.py 中做的有用的事情。我们不能使用 a __version.py__,并且我们失去了自动创建通用轮子和 sdist 并使用 Twine 将我们的包上传到 PyPi 的能力。我们目前可以在 setup.py 文件中执行此操作。

我只是有时间思考为什么我们想用仅元数据的文件完全替换 setup.py。似乎将它们一起使用是两全其美的。我们解决了先有鸡还是先有蛋的构建系统问题,并且保留了 setup.py 可以做的许多有用的事情。

无论如何,我们不需要 setup.py 在开发模式下安装吗?或者也许这只是一个点子问题?

4

0 回答 0