【发布时间】:2022-08-11 02:45:12
【问题描述】:
当你有一个setup.py 文件时,你可以通过以下命令获取包的名称:
C:\\some\\dir>python setup.py --name
这会将包的名称打印到命令行。
为了坚持最佳实践,我试图通过将所有内容放入setup.cfg 来从setup.py 迁移,因为之前在setup.py 中的所有内容都是静态内容。
但是我们的构建管道依赖于能够调用python setup.py --name。我希望以不需要创建setup.py 文件的方式重写管道。
当您有 setup.cfg 但没有 setup.py 文件时,有没有办法获取包的名称?
-
setuptools.pypa.io/en/latest/… 谈了一点关于 setup-cfg-only 项目模拟一个简单地运行
setuptools.setup()的虚拟 setup.py 文件。显式创建一个调用 no-argsetup()方法的 setup.py 文件实际上会读取 setup.cfg 并且足以让我得到名称,但我仍然想知道是否有更好的方法。 -
保持最小的
setup.py是一个有效的解决方案。否则使用解析。安装工具使用标准库中的ConfigParser读取setup.cfg,因此如答案中所述,这是一个有效的解决方案。很快安装工具应该支持使用 TOML 格式的PEP 621 标准,并且 TOML 解析器将被添加到 Python 的标准库(Python 3.11)中,因此应该很容易为几乎任何构建后端提取信息(不是只是安装工具)。 -
如果想更进一步,能够从任何PEP 517 项目(又名
pyproject.toml)获取元数据(名称等),那么可以构建某种政治人物 517“构建前端”只是为了这个目的,只关注prepare_metadata_for_build_wheel()方面,也许pep517library 可以帮助解决这个问题。
标签: python setuptools setup.py python-packaging