Python パッケージインデクス (Python Package Index, PyPI) は、 distutils でパッケージ化された配布物に関するメタデータを保持しています。配布物のメタデータをインデクスに提出するには、 Distutils のコマンド register を使います。 register は以下のように起動します:
python setup.py register
Distutils は以下のようなプロンプトを出します:
running register
We need to know who you are, so please choose either:
1. use your existing login,
2. register as a new user,
3. have the server generate a new password for you (and email it to you), or
4. quit
Your selection [default 1]:
注意: ユーザ名とパスワードをローカルの計算機に保存しておくと、このメニューは表示されません。
まだ PyPI に登録したことがなければ、まず登録する必要があります。この場合選択肢 2 番を選び、リクエストされた詳細情報を入力して ゆきます。詳細情報を提出し終えると、登録情報の承認を行うためのメールを受け取るはずです。
すでに登録を行ったことがあれば、選択肢 1 を選べます。この選択肢を選ぶと、PyPI ユーザ名とパスワードを入力するよう促され、 register がメタデータをインデクスに自動的に提出します。
配布物の様々なバージョンについて、好きなだけインデクスへの提出を行ってかまいません。特定のバージョンに関するメタデータを 入れ替えたければ、再度提出を行えば、インデクス上のデータが更新されます。
PyPI は提出された配布物の (名前、バージョン) の各組み合わせについて記録を保持しています。ある配布物名について最初に情報を提出したユーザが、 その配布物名のオーナ (owner) になります。オーナは register コマンドか、web インタフェースを介して変更を提出できます。オーナは他のユーザをオーナやメンテナとして指名できます。 メンテナはパッケージ情報を編集できますが、他の人をオーナやメンテナに指名することはできません。
デフォルトでは、 PyPI はあるパッケージについて全てのバージョンを表示します。特定のバージョンを非表示にしたければ、パッケージの Hidden プロパティを yes に設定します。この値は web インタフェースで編集しなければなりません。
.pypirc ファイルのフォーマットを示します。
[distutils]
index-servers =
pypi
[pypi]
repository: <repository-url>
username: <username>
password: <password>
repository は省略可能で、デフォルトでは http://www.python.org/pypi になります。
別のサーバーを定義した場合は、新しいセクションを作成します。
[distutils]
index-servers =
pypi
other
[pypi]
repository: <repository-url>
username: <username>
password: <password>
[other]
repository: http://example.com/pypi
username: <username>
password: <password>
そうすると、 register コマンドに -r オプションをつけて実行できます。
python setup.py register -r http://example.com/pypi
もしくは、セクション名を使うこともできます。
python setup.py register -r other