1 distutils.core -- Distutils のコア機能

Distutilsを使うためにインストールする必要がある唯一のモジュールが distutils.coreモジュールです。setup()関数 (セットアップスクリプトから呼び出されます)を提供します。間接的に distutils.dist.Distributionクラスと distutils.cmd.Command クラスを提供します。

setup( arguments)
全てを実行する基本的な関数で、Distutilsでできるほとんどのことを実行し ます。 XXXXを参照してください。

setup関数はたくさんの引数をとります。以下のテーブルにまとめます。

argument name value type
name パッケージの名前 文字列
version パッケージのバージョン番号 distutils.versionを参照してください
description 1行で書いたパッケージ解説 文字列
long_description パッケージの長い解説 文字列
author パッケージ作者の名前 文字列
author_email パッケージ作者のemailアドレス 文字列
maintainer 現在のメンテナの名前(パッケージ作者と異なる場合) 文字列
maintainer_email 現在のメンテナのemailアドレス(パッケージ作者と異なる場合)
url パッケージのURL(ホームページ) URL
download_url パッケージダウンロード用URL URL
packages distutilsが操作するPythonパッケージのリスト 文字列のリスト
py_modules distutilsが操作するPythonモジュールのリスト 文字列のリスト
scripts ビルドおよびインストールする単体スクリプトファイルのリスト 文字列のリスト
ext_modules ビルドする拡張モジュール distutils.core.Extensionインスタンスのリスト
classifiers パッケージのTrove カテゴリのリスト XXX もっと良い定義へのリンク
distclass 使用する Distributionクラス distutils.core.Distributionのサブクラス
script_name setup.pyスクリプトの名前 - デフォルトではsys.argv[0] 文字列
script_args セットアップスクリプトの引数 文字列のリスト
options セットアップスクリプトのデフォルト引数 文字列
license パッケージのライセンス
keywords 説明用メタデータ。 PEP 314を参照してください
platforms
cmdclass コマンド名から Command サブクラスへのマッピング 辞書

run_setup( script_name[, script_args=None, stop_after='run'])
制御された環境でセットアップスクリプトを実行し、いろいろなものを操作する distutils.dist.Distributionクラスのインスタンスを返します。 これはディストリビューションのメタデータ(キーワード引数scriptと して 関数setup()に渡される)を参照したり、設定ファイルやコマ ンドラインの内容を調べる時に便利です。

script_nameexecfile()で実行されるファイルです。 sys.argv[0] は、 呼び出しのためにscript_nameと置換されます。 script_args は文字列のリストです。もし提供されていた場合、 sys.argv[1:] は、呼び出しのためにscript_args で置換されます。

stop_after は いつ動作を停止するか関数setup() に伝えます。 とりうる値は:

説明
init Distributionインスタンスを作成し、キーワード引数を setup()に渡したあとに停止する。
config 設定ファイルをパーズしたあと停止する(そしてそのデータは Distributionインスタンスに保存される)。
commandline コマンドライン (sys.argv[1:] または script_args) がパーズされたあとに停止する (そしてそのデータは Distributionインスタンスに保存される)。
run 全てのコマンドを実行したあとに停止する(関数 setup() を通常の方法で呼び出した場合と同じ)。 デフォルト値。

これに加えて、distutils.coreモジュールは他のモジュールにある いくつかのクラスを公開しています。

それぞれの簡単な説明を以下に記します。完全な説明についてはそれぞれの モジュールをごらんください。

class Extension

Extension クラスは、セットアップスクリプト中で C または C++拡張モジュー ルを表します。コンストラクタで以下のキーワード引数をとります。

argument name value type
name 拡張のフルネーム(パッケージを含む) -- ファイル名やパス 名ではなく、Pythonのピリオド区切りの名前 string
sources ソースファイル名のリスト。配布物ルートディレクトリ (setupスクリプトのある場所) からの相対パス、プラットフォーム独立のた めUnix形式(スラッシュで区切る)で記述します。ソースファイルは C, C++, SWIG (.i)、特定プラットフォーム用のリソースファイル、その他 build_extコマンドがソースファイルだと認識するどの形式でもありえます。 string
include_dirs C/C++ヘッダファイルを検索するディレクトリのリ スト(プラットフォーム独立のため Unix 形式で記述する) string
define_macros 定義するマクロのリスト; それぞれのマクロは 2要素のタプルで定義されます。'値'には定義しようとしている文字列、 または内容なしで定義する場合はNone(ソースコード中で #define FOOと書く、または Unix Cコンパイラのコマンドラインで -DFOO を指定するのと等価です)を指定します。 (string,string) または (name,None) のタプル
undef_macros 定義を消すマクロのリスト string
library_dirs リンク時にC/C++ライブラリを検索するディレクトリのリスト string
libraries リンクするライブラリ名のリスト (ファイル名やパスではない) string
runtime_library_dirs 実行時(shared extensionでは、拡張が読み 込まれる時)に C/C++ライブラリを探索するディレクトリのリスト string
extra_objects 追加でリンクするファイル('sources'に対応するコー ドが含まれていないファイル、バイナリ形式のリソースファイルなど)のリスト string
extra_compile_args 'sources'のソースをコンパイルする時に 追加するプラットフォーム特有またはコンパイラ特有の情報 コマンドラインを利用できるプラットホームとコンパイラでは、これは通常 コマンドライン引数のリストですが、他のプラットホームでも、それは何か に使えます。 string
extra_link_args オブジェクトファイルをリンクして拡張(または新しいPythonインタプ リタ)を作る時に 追加するプラットフォーム特有またはコンパイラ特有の情報 'extra_compile_args'に似た実装です。 string
export_symbols shared extensionからエクスポートされるシンボルのリスト。 全てのプラットフォームでは使われず、 Python拡張(典型的には init + extension_name という1つのシンボル だけエクスポートする)に一般的に必要なものでもない。 string
depends 拡張が依存するファイルのリスト string
language 拡張の言語 (例: 'c', 'c++', 'objc')。指定しなければソースの拡張子で検出される。 string

class Distribution
DistributionはPythonソフトウェアパッケージをどのようにビルド、 インストール、パッケージするかを定義する。

Distributionのコンストラクタが取りうる キーワード引数のリストに関しては、setup()関数を見てください。 setup()Distributionのインスタンスを作ります。

class Command
Commandクラス(そのサブクラスのインスタンス)はdistutilsのあるコマン ドを実装します。

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