3.1 Built-in Module sys

  このモジュールは、インタプリタが使用したり変更したりする変数や、 インタプリタと強く関連する関数へのアクセスを提供します。 本モジュールは、いつでも使用可能です。

argv
パイソンスクリプトへ渡されるコマンドライン引数のリストです。 argv[0] は、スクリプト名です(このスクリプト名が フルパスであるか否かは、オペレーティングシステムに依存します)。 コマンドが、"-c"オプションつきで実行された場合には、 argv[0] には "-c"という文字列がセットされます。 パイソンインタプリタにスクリプト名が渡されなかった場合は、 argvは長さ0になります。

builtin_module_names
コンパイルされてパイソンインタプリタに組み込まれた全てのモジュール名 のタプルです。 (この情報は、modules.keys()でインポート済みのモジュールを リストすることを除き、他のいかなる方法でも取得できません。)

exc_info ()
この関数は、現在捕捉中の例外 に関する3つの情報を返します。 この情報は、現在のスレッドと現在のスタックフレームの両方に対して 特有なものです。 現在のスタックフレームが例外を捕捉していない場合、 例外捕捉中のスタックフレームが見つかるまで、現在のスタックフレーム の呼出し元であるスタックフレーム、さらにその元というように遡って 情報が取得されます。 ここで、例外捕捉中とは、except節を実行中またはちょうど実行したところ という意味です。 全てのスタックフレームは、最も最近に処理した例外に関する情報のみ アクセスできます。

スタック上のいかなる場所にも、捕捉中の例外がなかった場合には、 3つの要素がNoneであるタプルを返します。 そうでなければ、返される値は、 (type, value, traceback) です。以下にその意味を示します。 type は、捕捉中の例外の例外タイプです (文字列またはクラスオブジェクト)。 valueは、例外のパラメータです (例外に関係した値またはraise文の第2引数であり、 例外タイプがクラスオブジェクトの場合は必ずクラスインスタンス となります)。 traceback は、トレースバックオブジェクト(リファレンスマニュアル を参照して下さい)であり、例外の発生元におけるコールスタックを要約します。  

警告: 関数内のローカル変数にtracebackの値を代入すると、 循環呼出し(無限ループ)を引き起こします。 この性質は、同一関数内のローカル変数やトレースバックによって参照される 全てのものがガベージコレクトされるのを防いでいます。 ほとんどの関数では、トレースバックへのアクセスは必要ではないため、 上記問題を解決する最善策は、type, value = sys.exc_info()[:2] というように、例外タイプおよびその値のみ抽出することです。 もしトレースバックが必要なときには、 使用後にそのローカル変数を削除するか (try ... finally文で行うのが最善である)、 例外を捕捉中でない関数でexc_info()を 呼び出すようにして下さい。

exc_type
exc_value
exc_traceback
リリース1.5.より使用することは推奨されていません。 かわりにexc_info()を使用すべきです。

これらはグローバル変数であり、現在のスレッドに特有の値ではありません。 したがって、マルチスレッドプログラムで使用した時には値の保証はありません。 いかなる例外も発生しなかった場合には、exc_typeは Noneに設定されて、 他の2つは定義されません。

exec_prefix
プラットフォーム依存となる、パイソンファイルがインストールされている サイト特有のディレクトリの prefixを表す文字列です。 デフォルトでは、"/usr/local"dとなります。 これは、パイソンのビルト時に、configureスクリプトにおいて、 --exec-prefix 引数で指定されたディレクトリです。 特に、全てのコンフィグレーションファイル(たとえば、"config.h" ヘッダーファイル)はexec_prefix + "/lib/pythonversion/config" のディレクトリに、 シェアードライブラリモジュールは exec_prefix + "/lib/pythonversion/lib-dynload" のディレクトリにインストールされます。 ここで、versionversion[:3]に等しいです。

exit (n)
数字の終了ステータス値 nでパイソンを終了します。 これは、 SystemExit例外を上げることによって実装されています。 そのため、 try文のfinally節によって特定されるクリーンアップアクション が実行され、外部レベルで終了しようとしたことをキャッチすることが可能です。

exitfunc
この値はモジュールによっては定義されません。しかし、 ユーザまたはプログラムによって設定可能であり、プログラムが終了時に 行われるclean-upアクションを指定することができます。 設定できるのは、パラメータなしの関数です。 この関数は、インタプリタ終了時に必ず呼ばれます(致命的なエラーが発生した 場合は除きます。このときには、インタプリタの内部状態は信頼できません)。

getrefcount (object)
objectの参照総数を返します。 返された総数は期待値よりも1大きくなっています。なぜなら、 getrefcount()関数の引数としての一時的な参照を含んでいるからです。

last_type
last_value
last_traceback
これら3つの変数は必ずしも定義はされません。 これらは、例外を処理していなくて、インタプリタがエラーメッセージや スタックトレースバックを出力するときに設定されます。 これらの利用目的は、対話的にプログラムを実行させているユーザが、 デバッグモジュールをインポートして、最後の例外発生の状態でデバッグできるよ うにすることです。そして、エラーを発生させるために再度コマンドを実行する必要は ありません。 (代表的な利用法として、 "import pdb; pdb.pm()" とすることによって、 最後の例外発生の状態でデバッグできるようにする方法があります。 詳しくは、``The Python Debugger''の章をご覧下さい。  

各変数の意味は、exc_info()から返される値と同じです。 (Since there is only one interactive thread, thread-safety is not a concern for these variables, unlike for exc_type etc.)

modules
これは、すでにロードされているモジュール名とモジュールを対応づける ディクショナリです。 モジュールを無理矢理リロードしたり、その他のトリックを行う のに用いられます。本ディクショナリからモジュールを削除すること と、対応するモジュールオブジェクト上でreload()  すること は同じではありません。

path
  モジュールのサーチパスを特定する文字列のリストです。 環境変数 $PYTHONPATHまたはインストールに依存するデフォルトパス により初期化されます。

このリストの最初の項目(path[0])は、パイソンインタプリタを起動するのに使用された スクリプトを含むディレクトリです。もし、スクリプトディレクトリが 入手不可能の場合には(たとえば、対話モードで起動された場合や 標準入力からスクリプトが読まれた場合)、path[0]は空の文字列であり、 パイソンがカレントディレクトリ内のモジュールを最初にサーチすることを示します。 このスクリプトディレクトリは、$PYTHONPATHによってエントリされる ディレクトリより前に挿入されることに注意してください。

platform
プラットフォームの識別子、たとえば、'sunos5''linux1' 等の文字列です。これは、例えば、プラットフォーム特有のコンポーネントを pathに追加するのに使用できます。

prefix
プラットフォーム依存となる、パイソンファイルがインストールされている サイト特有のディレクトリの prefixを表す文字列です。 デフォルトでは、"/usr/local"となります。 これは、パイソンのビルト時に、configureスクリプトにおいて、 --exec-prefix 引数で指定されたディレクトリです。 パイソンライブラリモジュールの主なセットは、 prefix + "/lib/pythonversion" ディレクトリにインストールされます。 一方、プラットフォーム依存のヘッダーファイル("config.h"を除く全て) は、prefix + "/include/pythonversion"にストアされています。 ここで、versionversion[:3]に等しいです。

ps1
ps2
   インタプリタの第1および第2プロンプトを特定する文字列です。 これらは、インタプリタが対話モードである場合にだけ定義されます。 その場合の初期値は、'>>> 'および'... 'です。 もし、文字列でないオブジェクトがいづれか一方の変数に割り当てられた場合には、 次の新しいコマンド読むためにインタプリタが準備するごとに、 割り当てられたオブジェクトをstr()したものが評価されます。 これは、動的なプロンプトを実装する時に使用することができます。

setcheckinterval (interval)
インタプリタの``check interval''を設定します。 指定する整数値は、インタプリタがスレッドのスイッチとシグナルハンドラーのような 周期性のあるものをチェックする頻度を決定します。 デフォルトは 10であり、 Pythonの仮想命令10ごとに チェックが行われることを意味します。 より大きな値に設定することで、スレッドを使用するプログラムのパフォーマンス を上げることができます。 0以下の値に設定すれば、仮想命令を実行するごとに チェックが行われ、オーバヘッドはもちろんレスポンスも 最大限度にできます。

settrace (tracefunc)
システムのトレース関数を設定して、パイソンのソースコード デバッカーを実装することができます。 詳細は、パイソンデバッカーの章である、``How It Works''をご覧下さい。
  

setprofile (profilefunc)
システムのプロファイル関数を設定して、パイソンのソースコード プロファイラーを実装することができます。 詳細は、パイソンプロファイラーの章をご覧下さい。 システムのプロファイル関数は、システムのトレース関数と同様に コールされますが(settrace()をご覧下さい)、 コードの一行ごとにコールされるわけではありません (only on call and return and when an exception occurs)。 また、返却値は使用されないため、Noneが返されます。
  

stdin
stdout
stderr
インタプリタの標準入力、標準出力、標準エラーのストリームに対応する ファイルオブジェクトです。 stdinは、スクリプトを除いて全てのインタプリタの入力として 使用されます。ただし、スクリプトの中で input() raw_input() の呼出しを行っている 場合にも使用されます。 stdoutは、printや表現の文(expression statements)、 およびinput()raw_input()のプロンプトに使用されます。 インタプリタ自身のプロンプトやエラーメッセージのほとんど全ては、 stderrへ出力されます。 stdoutstderrは、必ずしも組み込みの ファイルオブジェクトである必要はありません。 すなわち、すべてのオブジェクトは、文字列の引数をとる メソッドwrite()を実装しているかぎり、ファイルオブジェクトとして 使用できるのです。 (これらのいファイルオブジェクトを変更しても、 osモジュールのos.popen()os.system()exec*()という関数群 によって実行されるプロセスの、標準入出力に影響ありません。)  

tracebacklimit
この変数を整数値にセットすると、例外を捕捉していないときに 発生する例外に対して出力される トレースバック情報の階層レベルの最大数を決定できます。 デフォルトは1000です。 0またはそれ以下にセットされた場合には、すべてのトレースバック情報は 抑止され、例外のタイプと値のみがプリントされます。

version
パイソンインタプリタのバージョン番号を含む文字列です。

guido@python.org