#
1 はじめに

Python の広範な標準ライブラリは、プログラミングにおける多くの 要求をカバーしていますが、時には何らかの新たな機能をサードパーティ製 モジュールの形で追加する必要に迫られます。 自分がプログラムを書くときのサポートとして必要な場合もあるし、 自分が使いたいアプリケーションがたまたま Python で書かれていて、 そのサポートとして必要な場合もあるでしょう。

以前は、すでにインストール済みの Python に対して、サードパーティ製 モジュールを追加するためのサポートはほとんどありませんでした。 しかしPython 配布ユーティリティ (Python Distribution Utilities, 略して Distutils) が Python 2.0 から取り入れられ、状況は変わりました。

このドキュメントが主要な対象としているのは、サードパーティモジュール をインストールする必要がある人たち: 単に何らかの Python アプリケーション を稼動させたいだけのエンドユーザやシステム管理者、そしてすでに Python プログラマであって、新たな道具を自分のツールキットに加えたい と思っている人たちです。このドキュメントを読むために、 Python に ついて知っておく必要はありません; インストールしたモジュールを 調べるために Python の対話モードにちょっとだけ手を出す必要が ありますが、それだけです。自作の Python モジュールを他人が使える ようにするために配布する方法を探しているのなら、 Python モジュールの配布 マニュアルを 参照してください。

##
1.1 もっとも簡単な場合: ありふれたインストール作業

最も楽なのは、インストールしたいモジュール配布物の特殊なバージョンを インストールしたいプラットフォーム向けに誰かがすでに用意してくれていて、 他のアプリケーションと同じようにインストールするだけであるような場合です。 例えば Windows ユーザ向けには実行可能形式のインストーラ、 RPM ベースの Linux システム (Red Hat, SuSE, Mandrake その他多数) 向けには RPM パッケージ、 Debian ベースの Linux システム向けには Debian パッケージといった具合に、モジュール開発者はビルド済み 配布物を作成しているかもしれません。

このような場合、自分のプラットフォームに合ったインストーラをダウンロード して、実行可能形式なら実行し、RPM なら `rpm --install` するといった、 分かりきった作業をするだけです。 Python を起動したり、 setup スクリプトを実行する必要はなく、 何もコンパイルする必要はありません -- 説明書きを読む必要すら 全くないかもしれません (とはいえ、説明書きを読むのはよいことですが)。

もちろん、いつもこう簡単とは限りません。自分のプラットフォーム向けの お手軽なインストーラがないモジュール配布物に興味を持つこともあるでしょう。 そんな場合には、モジュールの作者やメンテナがリリースしている ソース配布物から作業をはじめねばなりません。 ソース配布物からのインストールは、モジュールが標準的な方法でパッケージ 化されている限りさほど大変ではありません。このドキュメントの大部分は、 標準的なソース配布物からのビルドとインストールに関するものです。

##
1.2 新しい標準: Distutils

モジュールのソースコード配布物をダウンロードしたら、配布物が 標準のやり方、すなわち Distutils のやり方に従ってパッケージされて 配布されているかどうかすぐに分かります。Distutils の場合、まず配布物の 名前とバージョン番号が、例えば foo-1.0.tar.gz や widget-0.9.7.zip のように、ダウンロードされたアーカイブファイルの 名前にはっきりと反映されます。次に、アーカイブは同様の名前の ディレクトリ、例えば foo-1.0 や widget-0.9.7 に展開されます。 さらに、配布物には setup スクリプト setup.py が入っています。 また、README.txt 場合によっては README という名前の ファイルも入っていて、そこには、モジュール配布物の構築とインストールは 簡単で、

    python setup.py install

とするだけだ、という説明が書かれているはずです。

上記の全てが当てはまるなら、ダウンロードしたものをビルドして インストールする方法はすでに知っていることになります: 上記のコマンドを 実行するだけです。 非標準の方法でインストールを行ったり、ビルドプロセスをカスタマイズ 行いたいのでない限り、このマニュアルは必要ありません。 別の言葉で言えば、上のコマンドこそが、このマニュアルから習得すべき 全てということになります。