2016-11-04 8 views
1

私は、PyPIでリリースされたほとんどのプロジェクトはプロジェクトページに「Pyバージョン」のメタデータを含んでいますが、その値はさまざまです。PyPIプロジェクトページの「Pyバージョン」とは何ですか?それは重要ですか?

パッケージがユニバーサルパッケージでない場合、または純粋なPythonパッケージでない場合、その値は明らかに異なります(nose pagesimplejson pageなど)。

しかし、他の普遍的な純粋な(私が言うことができる限り)Pythonパッケージには依然としてわずかに異なる内容が含まれています。たとえば:あなたはこのrsa pageで "2.7"

  • を見つけるでしょう、このrequests PyPI page

    • 検索 "Pyのバージョンは、" あなたはsix pageで "3.5"
    • を見つけるだろう、それは "py2.py3"
    • ですpython-dateutil pageでは、「任意の」

    だから私の質問は、それらが異なるツールチェーンによって引き起こされている彼らのリリースパッケージを構築するために、著者の使用を参照してくださいだろうか? python2 setup.py sdist bdist_wheel --universal uploadを実行しようとすると、「2.7」のPyバージョンの値が得られます。次回はpython3 ...を試してからtwine ...を試してみましょう。

    もっと重要なことは、これらすべてのことですか?私の前述のコマンドラインは、Python 2とPython 3環境で他の人が消費するのに適した汎用パッケージを構築していますか?

  • 答えて

    1

    どこでもあなたが2.7または3.5または別のPythonのバージョンを参照して、その列はを構築するために使用現在のPythonのバージョンに基づいて、by the bdist_wheel commandを設定するが、これは誤った値ですました。 Wheelsプロジェクトの課題トラッカーではbug 102です。

    これはPyPIプロジェクトでreported as a bugでした。すべてのプロジェクトで実際にはpy2.py3と言わなければなりません。幸運なことに、ホイールのインストールに使用するツールには関係ありませんが、それでも列が何を示しているのかはまだ分かりません。

    これはPyPIのエラーではありませんただし、フィールドはアップロードツールを使用してに設定されています。 file_upload() XML-RPC handlerは、アップローダから変更されていない値を取得し、後で表示するためにその値をデータベースに挿入します。 setuptools uploadを使用する場合、その値は最終的に配布ファイルを作成したコードから取得されますので、この場合はbdist_wheelとなります。

    あなた自身のプロジェクトについて深く気を付けると、そこに正しい情報がリストされている場合は、代わりにtwine uploaderを使用することをおすすめします。このパッケージextracts the pyversion field from the wheel filenamePyバージョン列にpy2.py3が設定されているプロジェクトでは、そのツールを使用してアップロードが行われます。 Twineには他にも多くの利点があります.に安全に使うことができます。 HTTPSでファイルをアップロードしてください。 any値については

    、それはどちらかだ、手動では、PyPIインターフェース、またはおそらく他のツールや、私はおよそ認識していないよtwineまたはsetuptools bdist_wheelの以前のバージョンでファイルをアップロードすることで設定します。

    関連する問題