#
2 簡単な例

setup スクリプトは通常単純なものですが、Python で書かれているため、ス クリプト中で何かを処理しようと考えたとき特に制限はありません。とはい え、 setup スクリプト中に何かコストの大きな処理を行うときは十分 注意してください。 autoconf 形式の設定スクリプトとは違い、 setup スクリプトはモジュール 配布物をビルドしてインストールする中で複数回実行されることがあります。

foo.py という名前のファイルに収められている `foo` という 名前のモジュールを配布したいだけなら、setup スクリプトは以下のような 単純なものになります:

    from distutils.core import setup
    setup(name='foo',
          version='1.0',
          py_modules=['foo'],
          )

以下のことに注意してください:

- Distutils に与えなければならない情報のほとんどは、 `setup()` 関数のキーワード引数として与えます。
- キーワード引数は二つのカテゴリ: パッケージのメタデータ (パッケージ名、バージョン番号) 、パッケージに何が収められているか の情報 (上の場合は pure Python モジュールのリスト)、に行き着きます。
- モジュールはファイル名ではなく、モジュール名で指定します (パッケージと拡張モジュールについても同じです)
- 作者名、電子メールアドレス、プロジェクトの URL といった 追加のメタデータを入れておくよう奨めます ( 4 の 例を参照してください)

このモジュールのソースコード配布物を作成するには、 上記のコードが入った setup スクリプト setup.py を作成して、以下のコマンド:

    python setup.py sdist

を実行します。

この操作を行うと、アーカイブファイル (例えば Unixでは tarball、Windows では ZIP ファイル) を作成します。アーカイブファイル には、setup スクリプト setup.py と、配布したいモジュール foo.py が入っています。アーカイブファイルの名前は foo-1.0.targ.gz (または .zip) になり、展開すると ディレクトリ foo-1.0 を作成します。

エンドユーザが `foo` モジュールをインストールしたければ、 foo-1.0.tar.gz (または .zip) をダウンロードし、 パッケージを展開して、以下のスクリプトを -- foo-1.0 ディレクトリ中で -- 実行します:

    python setup.py install

この操作を行うと、インストールされている Python での適切な サードパーティ製モジュール置き場にfoo.py を完璧に コピーします．

ここで述べた簡単な例では、 Distutils の基本的な概念のいくつかを 示しています。まず、開発者とインストール作業者は同じ基本 インタフェース、すなわち setup スクリプトを使っています。 二人の作業の違いは、使っている Distutils コマンド (command) にあります: `sdist` コマンドは、ほぼ完全に開発者だけが 対象となる一方、`install` はどちらかというとインストール 作業者向けです (とはいえ、ほとんどの開発者は自分のコードをインストール したくなることがあるでしょう)。

ユーザにとって本当に簡単なものにしたいのなら、一つまたはそれ以上の ビルド済み配布物を作ってあげられます。例えば、Windows マシン 上で作業をしていて、他の Windows ユーザにとって簡単な配布物を提供したいのな ら、実行可能な形式の (このプラットフォーム向けのビルド済み配布物としては もっとも適切な) インストーラを作成できます。これには `bdist_wininst` を使います。例えば:

    python setup.py bdist_wininst

とすると、実行可能なインストーラ形式、foo-1.0.win32.exe が 現在のディレクトリに作成されます。

その他の有用な配布形態としては、`bdist_rpm` に実装 されている RPM 形式、 Solaris pkgtool (`bdist_pkgtool`) 、 HP-UX swinstall (`bdist_sdux`) があります。例えば、以下のコマンドを実行すると、 foo-1.0.noarch.rpm という名前の RPM ファイルを作成します:

    python setup.py bdist_rpm

(`bdist_rpm` コマンドは `rpm` コマンドを使うため、 Red Hat Linux や SuSE Linux、 Mandrake Linux といった RPM ベースの システムで実行しなければなりません)

どの配布形式が利用できるかは、

    python setup.py bdist --help-formats

を実行すれば分かります。