`setup.py`中`setup()`的`platforms`参数是做什么的?

Nik*_*ita 15 python setuptools pypi setup.py python-wheel

通过几个项目看最近,我注意到他们中的一些使用platforms到参数setup()setup.py,虽然与只有一个值any,即

#setup.py file in project's package folder 
...   
setup(
      ...,
      platforms=['any'],
      ...
)
Run Code Online (Sandbox Code Playgroud)

要么

#setup.py file in project's package folder
...  
setup(
      ...,
      platforms='any',
      ...
)
Run Code Online (Sandbox Code Playgroud)

从名称"平台",我可以猜测这个参数意味着什么,似乎列表变体是正确的用法.

所以我用谷歌搜索,查看了setuptools文档,但是我没有找到任何解释,它们可能的值是platforms什么,它在包中的作用/影响是什么.

请解释或提供一个链接,解释它究竟做了什么以及它接受了什么值?

PS还尝试在我的OS独立包中提供不同的值,看看在创建轮子时有什么变化,但它似乎什么也没做.

Mar*_*ers 9

platformssetuptools包继承的参数distutils; 看到其他元数据部分distutils的文档:

元数据:platforms
描述:平台列表
:字符串列表

所以,是的,使用列表是正确的语法.

该字段只提供元数据; 包的目标是什么平台.使用此选项可以向工具或人员传达您希望使用包的位置.

此列表的内容没有进一步的说明,它是非结构化和自由格式的.如果你想使用一些更有条理,使用可用的特罗韦分类串classifiers外地,在那里下的标签Operating System,Environment以及其他让你更严格界定的平台.

车轮不使用该领域比其他包括它的元数据,就像像其他领域authorlicense.

  • 所以基本上它已经过时,没有实际用途?我的意思是,如果你也有,你可以从`classifiers`获得预期的平台. (2认同)
  • 当然,请随意.如果它有所帮助,我已经建立并发布了超过15年的Python项目,我非常有信心没有其他答案.:-) (2认同)

Nik*_*ita 6

只是一个更新,为感兴趣的人提供更多信息.

platformsPEP中找到了准确的描述.

所以," 那里有一个PEP! ":

PEP-0345列出了所有可能的参数setup()setup.py,但它是一个小老头.

PEP-0426PEP-0459是描述Python包的元数据的较新版本.

  • pep426 和 pep 459 的状态已撤销。 (3认同)