1.2 節で述べたよいうに、 Distutils を使ったモジュール 配布物のビルドとインストールは、通常は単純なコマンド:
python setup.py install
Unixでは、このコマンドをシェルプロンプトで行います; Windows では、
コマンドプロンプトウィンドウ (``DOS ボックス'') を開いて、そこで
行います; Mac OS X の場合、Terminal
ウィンドウを開いて
シェルプロンプトを出してください。
setup コマンドは常に配布物ルートディレクトリ、すなわちモジュールの ソース配布物を展開した際のトップレベルのサブディレクトリ内で 実行しなければなりません。例えば、あるモジュールのソース配布物 foo-1.0.tar.gz を Unix システム上にダウンロードしたなら、 通常は以下の操作を行います:
gunzip -c foo-1.0.tar.gz | tar xf - # unpacks into directory foo-1.0 cd foo-1.0 python setup.py install
cd c:\Temp\foo-1.0 python setup.py install
setup.py install
を実行すると、一度の実行で全てのモジュールを
ビルドしてインストールします。段階的に作業をしたい場合 -- ビルド
プロセスをカスタマイズしたり、作業がうまくいかない場合に特に便利
です -- には、setup スクリプトに一度に一つづつ作業を行わせるよう
にできます。この機能は、ビルドとインストールを異なるユーザで
行う場合にも便利です -- 例えば、モジュール配布物をビルドしておいて
システム管理者に渡して (または、自分でスーパユーザになって) 、
インストールしたくなるかもしれません.
最初のステップでは全てをビルドしておき、次のステップで 全てをインストールするには、 setup スクリプトを二度起動します:
python setup.py build python setup.py install
install
コマンドを実行すると
まず build
コマンドを実行し、さらに -- この場合には --
build ディレクトリの中が全て最新の状態になっているので、
build
は何も行わなくてよいと判断していることが
わかるでしょう。
インターネットからダウンロードしたモジュールをインストールしたい だけなら、上のように作業を分割する機能は必要ないかもしれませんが、 この機能はより進んだ使い方をする際にはとても便利です。 自作の Python モジュールや拡張モジュールを配布することになれば、 個々の Distutils コマンドを自分で何度も実行することになるでしょう。
上で示唆したように、 build
コマンドは、インストールすべき
ファイルを ビルドディレクトリ (build directory) に置く働きが
あります。デフォルトでは、ビルドディレクトリは配布物ルート下の
build になります; システムの処理速度に強いこだわりがあったり、
ソースツリーに指一本触れたくないのなら、--build-base
オプションを使ってビルドディレクトリを変更できます。例えば:
python setup.py build --build-base=/tmp/pybuild/foo-1.0
ビルドツリーのデフォルトのレイアウトは以下のようになっています:
--- build/ --- lib/ または --- build/ --- lib.<plat>/ temp.<plat>/
<plat>
は、現在の OS/ハードウェアプラットフォームと
Python のバージョンを記述する短い文字列に展開されます。
第一の lib ディレクトリだけの形式は、 ``pure モジュール配布物''
-- すなわち、pure Python モジュールだけの入ったモジュール配布物 --
の場合に使われます。モジュール配布物に何らかの拡張モジュール
(C/C++ で書かれたモジュール) が入っている場合、第二の <plat>
付きディレクトリが二つある形式が使われます。この場合、
temp.plat ディレクトリには、コンパイル/リンク
過程で生成され、実際にはインストールされない一時ファイルが収められます。
どちらの場合にも、lib (または lib.plat)
ディレクトリには、最終的にインストールされることになる全ての Python
モジュール (pure Python モジュールおよび拡張モジュール) が入ります。
今後、 Python スクリプト、ドキュメント、バイナリ実行可能形式、 その他 Python モジュールやアプリケーションのインストール作業に 必要なディレクトリが追加されるかもしれません。
build
コマンドを実行した後 (明示的に実行した場合も、
install
コマンドが代わりに実行してくれた場合も) は、
install
コマンドの仕事は比較的単純なもの: build/lib
(または build/lib.plat) の下にあるもの全ての
指定したインストールディレクトリへのコピー、になります。
インストールディレクトリを選ばなかった場合 -- すなわち、
setup.py install
を実行しただけの場合 -- には、install
コマンドはサードパーティ製 Python モジュールを置くための標準の場所に
インストールを行います。この場所は、プラットフォームや、Python 自体を
どのようにビルド/インストールしたかで変わります。 Unix (と、Unix
をベースとしたMac OS X)
では、インストールしようとするモジュール配布物が pure Python なのか、
拡張モジュールを含む (``非 pure'') のかによっても異なります:
プラットフォーム | 標準のインストール場所 | デフォルト値 | 注記 |
---|---|---|---|
Unix (pure) | prefix/lib/python2.5/site-packages | /usr/local/lib/python2.5/site-packages | (1) |
Unix (非 pure) | exec-prefix/lib/python2.5/site-packages | /usr/local/lib/python2.5/site-packages | (1) |
Windows | prefix | C:\Python | (2) |
注記:
prefix および exec-prefix は、 Python がインストール されているディレクトリと、実行時にライブラリを探しにいく場所を表します。 これらのディレクトリは、Windows では常に同じで、 Unixと Mac OS X でも ほぼ常に同じです。自分の Python がどんな prefix や exec-prefix を使っているかは、Python を対話モードで起動して、 単純なコマンドをいくつか入力すればわかります。 Windows では、スタート > (すべての) プログラム > Python 2.5 > Python (command line) を選びます。 Mac OS 9 では、 PythonInterpreter を起動します。 インタプリタを起動すると、プロンプトに Python コードを入力 できます。例えば、作者の使っている Linux システムで、三つの Python 文を以下のように入力すると、出力から作者のシステムの prefix と exec-prefix を得られます:
Python 2.4 (#26, Aug 7 2004, 17:19:02) Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.prefix '/usr' >>> sys.exec_prefix '/usr'
モジュールを標準の場所にインストールしたくない場合や、標準の場所に インストールするためのファイル権限を持っていない場合、 3 節にある、別の場所へのインストール方法の説明を読んでください。 インストール先のディレクトリを大幅にカスタマイズしければ、 4 節のカスタムインストールに関する説明を読んでください。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。