Bas*_*hur 49 python requirements.txt python-packaging pyproject.toml
自 2022 年中期以来,现在可以取消setup.py
,setup.cfg
转而使用pyproject.toml
. 可编辑安装适用于最新版本的 setuptools 和 pip,甚至官方打包教程setup.py
也从pyproject.toml
.
然而,有关的文档requirements.txt
似乎也已被删除,我想知道现在将固定的需求放在哪里?
回顾一下:过去的常见做法是放置依赖项(没有版本固定),以setup.py
避免当此包与需要相同依赖项但版本要求冲突的其他包一起安装时出现问题。对于打包库来说, asetup.py
通常就足够了。
对于部署(即非库),您通常还提供requirements.txt
版本固定的依赖项。因此,您不会意外地获得该包经过测试的最新、最好的依赖项版本。
所以我的问题是,有什么改变吗?requirements.txt
当与 一起使用时,您仍然将固定的需求放在其中吗pyproject.toml
?或者有一个额外的部分pyproject.toml
吗?某处有相关文档吗?
sin*_*roc 10
所以我的问题是,有什么改变吗?与 pyproject.toml 一起使用时,您是否仍然将固定需求放在requirements.txt中?或者 pyproject.toml 中有一个额外的部分吗?某处有相关文档吗?
没有改变。固定依赖项不属于项目的打包元数据,这意味着固定依赖项不属于文件部分dependencies
的列表。截至今天,我所知道的固定依赖项还没有标准化部分。尽管该文档已经过时,但其精神仍然适用:“抽象依赖项”属于包元数据(例如,在 部分),并且“具体依赖项”可以在需要时在文件中列出(或在任何其他提供服务的文件中)与 Poetry或Pipenv类似的目的仅举其中两个,具体取决于项目的开发工作流程和工具)。[project]
pyproject.toml
pyproject.toml
[project]
pyproject.toml
requirements.txt
poetry.lock
Pipfile.lock
简而言之,抽象依赖关系是关于应该安装什么,具体依赖关系是关于如何安装(从哪个索引、具体是哪个版本、哪个版本、哪个发行版等等)。
抽象依赖项对于安装您的项目(库)的任何人都有效。但具体的依赖关系很可能因用户而异,或者从一台计算机到另一台计算机而异,甚至可能随着时间的推移而改变。例如,某些用户可能无法访问与其他用户相同的包索引(PyPI在某些地区不可用,某些公司使用私有内部镜像存储库)。某些依赖项需要非常具体的构建,这些构建取决于计算机上可用的硬件(例如 PyTorch)。
这是pip文档pyproject.toml
...此文件包含 pip 用来构建包的构建系统要求和信息。
所以这不是正确的地方。查看侧边栏,我们可以看到有一个条目Requirements File Format
是“旧”requirements.txt
文件
归档时间: |
|
查看次数: |
15103 次 |
最近记录: |