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

时间:2016-01-25 13:43:47

标签: python setuptools setup.py pypi python-wheel

最近浏览了几个项目,我注意到其中一些项目在platforms中使用setup()参数setup.py,但只有一个any值,即

#setup.py file in project's package folder 
...   
setup(
      ...,
      platforms=['any'],
      ...
)

OR

#setup.py file in project's package folder
...  
setup(
      ...,
      platforms='any',
      ...
)

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

所以我用Google搜索,查看了setuptools docs,但是我没有找到任何解释platforms的可能值以及它在包中的作用/影响。

请解释或提供一个链接,说明它的确切内容以及它接受的值是什么?

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

2 个答案:

答案 0 :(得分:7)

platformssetuptools包从distutils继承的参数;请参阅distutils文档中的Additional meta-data section

  

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

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

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

此列表的内容没有进一步说明,它是非结构化和自由格式。如果您想使用更结构化的内容,请使用classifiers字段中的available Trove classifier strings,其中Operating SystemEnvironment下的标记可让您更严格地定义平台。< / p>

除了将其包含在元数据中之外,车轮不会使用此字段,就像authorlicense等其他字段一样。

答案 1 :(得分:6)

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

我在PEP中找到了platforms的准确描述。

所以,“有一个PEP!”:

PEP-0345列出setup()setup.py的所有可能参数,但它有点旧。

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