setuptools.setup对所有元数据关键字有什么作用?

时间:2018-12-16 03:01:48

标签: python setuptools pypi

在我要发布项目的过程中,我正在阅读docs,以便更好地熟悉所有信息。最终,我发现自己正在查看distutils.core.setup以及与之相关的所有关键字,这让我感到奇怪:

  

这些关键字的用途是什么,它们去了哪里,为什么我们需要它们?

在某个临时脚手架项目上运行sdist后,我注意到其中出现了其中一些元数据的PKG-INFO。但是那是运行命令后我唯一可以找到它们的地方。有一个upload命令(或者我可以使用twine)来将源代码分发到PyPI上,因此我想它可能是一个约定,用于传递信息,然后将其解析并加载到PyPI网页上分发吗?

1 个答案:

答案 0 :(得分:1)

  

所以我想也许它是一种约定,用于传递信息,然后将其解析并加载到PyPI网页上进行分发?

您完全正确。这些关键字大多数代表各种core metadata字段,这些字段定义了所有Python软件包的发行版。

这些数据的大致路径如下:

  • 您为setup函数指定关键字;
  • 在构建发行版时将其写入PKG-INFO文件中;
  • 上传时,twinePKG-INFO进行读取,以确定有关您的发行版的所有元数据;
  • twine将此元数据与您的.zip.tar.gz.whl文件一起上传
  • PyPI将此元数据存储在项目的数据库中。