4 パッケージと配布物の関係 (Relationships between Distributions and Packages)

配布物はパッケージと3種類の方法で関係します:

  1. パッケージかモジュールを要求する。

  2. パッケージかモジュールを提供する。

  3. パッケージかモジュールを廃止する。

これらの関係は、distutils.core.setup()関数のキーワード引数を 利用して指定することができます。

他のPythonモジュールやパッケージに対する依存は、setup()requiresキーワード引数で指定できます。 引数の値は文字列のリストでなければなりません。 各文字列は、必要とするパッケージと、オプションとしてパッケージのバージョンを 指定します。

あるモジュールかパッケージの任意のバージョンが必要な場合、 指定する文字列はモジュール名かパッケージ名になります。例えば、 'mymodule''xml.parsers.expat' を含みます。

特定のバージョンが必要な場合、修飾子(qualifier)の列を加えることができます。 各修飾子は、比較演算子とバージョン番号からなります。利用できる比較演算子は:

<    >    ==
<=   >=   !=

これらの修飾子はカンマ(空白文字を入れても良いです)で区切って複数並べることができます。 その場合、全ての修飾子が適合する必要があります; 評価する時に論理ANDでつなげられます。

いくつかの例を見てみましょう:

require式 説明
==1.0 version 1.0 のみが適合します
>1.0, !=1.5.1, <2.0 1.5.1 を除いて、 1.0 より後ろで 2.0 より前の全てのバージョンに適合します。

これで、依存を指定することができました。同じように、この配布物が他の配布物に 必要とされる何を提供するのかを指定する必要があります。 これは、setup()provide キーワード引数によって指定できます。 この引数の値は文字列のリストで、各要素はPythonモジュールかパッケージの名前です。 バージョンを指定することもできます。 もしバージョンが指定されなかった場合、配布物のバージョン番号が利用されます。

いくつかの例です:

provide 式 説明
mypkg mypkg を提供します。バージョンは配布物のものを使います。
mypkg (1.1 mypkg version 1.1 を提供します。配布物のバージョン番号は 気にしません

パッケージは obsoletes キーワードを利用することで、他のパッケージを廃止することを 宣言することもできます。 この値はrequiresキーワードと似ています: モジュールやパッケージを指定する文字列の リストです。各文字列は、モジュールかパッケージの名前と、オプションとして一つ以上のバージョン 指定から構成されています。バージョン指定は、モジュールやパッケージの名前のうしろに、 丸括(parentheses)でかこわれています。

指定されたバージョンは、その配布物によって廃止されるバージョンを示しています。 バージョン指定が存在しない場合は、指定された名前のモジュールまたはパッケージの 全てが廃止されたと解釈されます。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。