2016-01-25 5 views
7

最近いくつかのプロジェクトを通して見ると、私はそれらのいくつかはしかし、すなわちanyの一つの値だけ、`setup.py`の` setup() `の` platform`引数は何をしますか?

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

や名前と

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

「プラットフォームと、 setup.pysetup()から platforms引数を使用して気づきました"、私はこの議論が何を意味するかを推測することができ、リストの変形が正しい使用法であると思われる。

私はグーグルで、setuptools docsを見ましたが、可能な値はplatformsのものであり、それがパッケージ内でどのような影響を及ぼすのか正確には説明できませんでした。

正確に何を説明し、どの値を受け入れるかについての説明や説明へのリンクを説明してください。

P.S.また、私のOSに依存しないパッケージで異なる値を提供しようとしましたが、ホイールを作成するときに何が変わるのかを確認しましたが、何もしないようです。

答えて

3

platformsは、setuptoolsパッケージがdistutilsから継承する引数です。 distutilsドキュメントでAdditional meta-data sectionを参照してください。

メタデータplatforms
説明:プラットフォームのリスト
:文字列

のリストだから、はい、リストを使うことは正しい構文です。

フィールドはメタデータを提供するだけです。どのプラットフォームがパッケージをターゲットにしていますか。このツールを使用して、パッケージを使用する場所をツールや人に伝えます。

このリストの内容はこれ以上指定されていません。構造化されておらず、自由形式です。より構造化されたものを使用する場合は、classifiersフィールドにavailable Trove classifier stringsを使用してください。Operating SystemEnvironmentなどのタグを使用すると、プラットフォームをより厳密に定義できます。

ホイールはauthorlicenseのように、このフィールドをメタデータに含める以外には使用しません。

+0

ありがとうございます、私はそれを見ましたが、それは文字列のリストであることを除いて、そのリンク上にそれ以上の情報はありません。 Linuxでいくつかのパッケージをインストールしようとすると、このフィールドを考慮して 'platform'が' win32'などに設定されていますか? – Nikita

+1

@ニキータ:もう少し言い訳があります。このフィールドを使用する自動ツールはありません。 –

+1

だから、基本的にそれは時代遅れであり、実際の使用はありませんか?あなたが持っているなら、あなたは 'クラシファイア 'から意図したプラットフォームを得ることができます。 – Nikita

3

興味のある方は、より多くの情報を提供するためのアップデートです。

PEPにはplatformsの正確な説明があります。 setup.pysetup()

PEP-0345リスト可能なすべての引数が、それは少し古いです:だから

、 "そのためのPEPがあります!"。

PEP-0426およびPEP-0459は、Pythonパッケージのメタデータを記述する新しいバージョンです。

関連する問題