2 簡単な例

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

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

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

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

このモジュールのソースコード配布物を作成するには、 上記のコードが入った 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
を実行すれば分かります。

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