パッケージを Package Index にアップロードする — Python 2.7ja1 documentation

### ナビゲーション

- 索引
- モジュール |
- 次へ |
- 前へ |
- Python 2.7ja1 documentation »
- Python モジュールの配布 »

# パッケージを Package Index にアップロードする

バージョン 2.5 で追加.

Python Package Index (PyPI) は、パッケージ情報に加えて、作者が望むのであればパッケージデータを置くこともできます。 distutils の upload コマンドは配布物をPyPIにアップロードします。

このコマンドは一つ以上の配布物ファイルをビルドした直後に呼び出されます。例えば、次のコマンド

    python setup.py sdist bdist_wininst upload

は、ソース配布物とWindowsのインストーラをPyPIにアップロードします。以前に `setup.py` を実行してビルドした配布物もアップロード対象になるけれども、アップロードされるのは upload コマンドと同時に指定された配布物だけだということに注意してください。

upload コマンドは、 `$HOME/.pypirc` ファイル (詳しくは .pypirc ファイル セクションをご覧下さい) の、ユーザー名、パスワードとリポジトリURLを利用します。同じコマンド内で register コマンドが呼ばれていて、そこでプロンプトからパスワードを入力した場合、 upload は入力されたパスワードを再利用します。 `$HOME/.pypirc` ファイルにプレインテキストでパスワードを保存したくない場合はこの方法を利用できます。

--repository=*url* オプションを使って別のPyPIサーバーを指定することができます。

    python setup.py sdist bdist_wininst upload -r http://example.com/pypi

複数のサーバーを定義することについて、より詳しい情報は .pypirc ファイル を参照してください。

--sign オプションで、アップロードする各ファイルにGPG (GNU Privacy Guard) を使うことができます。 gpg プログラムが環境変数 `PATH` から実行可能である必要があります。署名にどの鍵を使うかを、 --identity=*name* で指定することもできます。

他の upload のオプションには、 --repository= (url はサーバーのURL), --repository= (section は `$HOME/.pypirc` のセクション名), --show-response (アップロードの問題をデバッグするために、PyPI サーバーからの全てのレスポンスを表示する)があります。

## PyPI パッケージ表示

`long_description` フィールドは PyPI において特別な役目を持ちます。サーバーは登録されたパッケージのホームページを表示するためにこれを利用します。

このフィールドに reStructuredText 記法を利用した場合、 PyPI はこれをパースして、パッケージのホームページにHTML 出力を表示します。

`long_description` フィールドにパッケージ内のファイルの内容を利用することもできます。

    from distutils.core import setup

    with open('README.txt') as file:
        long_description = file.read()

    setup(name='Distutils',
          long_description=long_description)

この例では、 `README.txt` は通常の reStructuredText テキストファイルで、 `setup.py` と同じパッケージのルートディレクトリに置かれています。

壊れた reStructuredText を登録してしまうのを防ぐために、コマンドラインから `docutils` パッケージが提供している rst2html プログラムを利用して `long_description` をチェックすることができます。

    $ python setup.py --long-description | rst2html.py > output.html

文法に問題がある場合は、 `docutils` は警告を表示するはずです。

### ナビゲーション

- 索引
- モジュール |
- 次へ |
- 前へ |
- Python 2.7ja1 documentation »
- Python モジュールの配布 »