このモジュールでは、インタープリタで使用・管理している変数や、インタープ リタの動作に深く関連する関数を定義しています。このモジュールは常に利用可能で す。
argv[0]
は
スクリプトの名前となりますが、フルパス名かどうかは、オペレーティングシ
ステムによって異なります。コマンドライン引数に-cを付けて
Pythonを起動した場合、argv[0]
は文字列'-c'
となります。引
数なしでPythonを起動した場合、argv
は長さ0のリストになります。
'big'
、リトルエンディアン(最下
位バイトが先頭)では'little'
となります。
バージョン 2.0 で 新たに追加 された仕様です。
'CPython'
。
branch は 'trunk'
、'branches/name'
または
'tags/name'
のいずれかの形式の文字列です。
version はもしインタプリタが Subversion のチェックアウトから
ビルドされたものならば svnversion
の出力であり、
リビジョン番号 (範囲) とローカルでの変更がある場合には最後に 'M' が付きます。
ツリーがエクスポートされたもの (または svnversion が取得できない) で、
branch がタグならば Include/patchlevel.h
のリビジョンになります。
それ以外の場合には None
です。
バージョン 2.5 で 新たに追加 された仕様です。
modules.keys()
は、インポートされたモジュールのみのリストを返し
ます。)
) |
この関数はデッドロックをデバッグするのに非常に有効です。デッドロック 状態のスレッドの協調動作を必要としませんし、そういったスレッドのコー ルスタックはデッドロックである限り凍り付いたままです。デッドロックに ないスレッドのフレームについては、そのフレームを調べるコードを呼んだ 時にはそのスレッドの現在の実行状況とは関係ないところを指し示している かもしれません。
この関数は外部に見せない特別な目的でのみ使われるべきです。 バージョン 2.5 で 新たに追加 された仕様です。
value) |
None
以外の場合、value
をsys.stdout
に
出力して__builtin__._
に保存します。
sys.displayhook
は、Pythonの対話セッションで入力された式が評価さ
れたときに呼び出されます。対話セッションの出力をカスタマイズする場合、
sys.displayhook
に引数の数が一つの関数を指定します。
type, value, traceback) |
sys.stderr
に出力します。
例外が発生し、その例外が捕捉されない場合、インタープリタは例外クラス・
例外インスタンス・トレースバックオブジェクトを引数として
sys.excepthook
を呼び出します。対話セッション中に発生した場合は
プロンプトに戻る直前に呼び出され、Pythonプログラムの実行中に発生した場合
はプログラムの終了直前に呼び出されます。このトップレベルでの例外情報出
力処理をカスタマイズする場合、sys.excepthook
に引数の数が三つの
関数を指定します。
displayhook
とexcepthook
の値を保存して
います。この値は、displayhook
とexcepthook
に不正なオブジ
ェクトが指定された場合に、元の値に復旧するために使用します。
) |
スタック上で例外が発生していない場合、三つのNone
のタプルを返し
ます。例外が発生している場合、(type, value,
traceback)
を返します。typeは、処理中の例外の型を示します
(クラスオブジェクト)。valueは、例外パラメータ
(例外に関連する値またはraiseの第二引数。typeが
クラスオブジェクトの場合は常にクラスインスタンス)です。traceback
は、トレースバックオブジェクトで、例外が発生した時点でのコールスタック
をカプセル化したオブジェクトです(リファレンスマニュアル参照)。
exc_clear()が呼び出されると、現在のスレッドで他の例外が発生するか、
又は別の例外を処理中のフレームに実行スタックが復帰するまで、
exc_info()は三つのNone
を返します。
警告:
例外処理中に戻り値のtracebackをローカル変数に代入すると
循環参照が発生し、関数内のローカル変数やトレースバックが参照している全
てのオブジェクトは解放されなくなります。特にトレースバック情報が必要で
はなければexctype, value = sys.exc_info()[:2]
のように例外型と例
外オブジェクトのみを取得するようにして下さい。もしトレースバックが必要
な場合には、処理終了後にdeleteして下さい。このdeleteは、try
... finally ...で行うと良いでしょう。
注意:
Python 2.2 以降では、ガベージコレクションが有効であればこのような
到達不能オブジェクトは自動的に削除されます。しかし、循環参照を作らない
ようにしたほうが効率的です。
) |
None
を返します。
この関数が必要となることは滅多にありません。ロギングやエラー処理などで最後に 発生したエラーの報告を行う場合などに使用します。また、リソースを解放して オブジェクトの終了処理を起動するために使用することもできますが、オブジェクト が実際にされるかどうかは保障の限りではありません。 バージョン 2.3 で 新たに追加 された仕様です。
exc_type
の値はNone
となり、
exc_value
とexc_traceback
は未定義となります。
Pythonのプラットフォーム依存なファイルがインストールされているディレク
トリ名(サイト固有)。デフォルトでは、この値は'/usr/local'
です
が、ビルド時にconfigureの--exec-prefix引数で
指定することができます。全ての設定ファイル(pyconfig.hなど)は
exec_prefix + '/lib/pythonversion/config'
に、共有ライブラ
リはexec_prefix + '/lib/pythonversion/lib-dynload'
にイン
ストールされます(但しversionはversion[:3]
)。
[arg]) |
sys.stderr
に出力され、終了コードをして1を返します。エ
ラー発生時にはsys.exit("エラーメッセージ")
と書くと、簡単にプロ
グラムを終了することができます。
exitfunc
に指定することができる終了処理関数は一つだけですので、
複数のクリーンアップ処理が必要な場合はatexitモジュールを使
用してください。
注意:
プログラムがシグナルでkillされた場合,Python内部で致命的なエラーが
発生した場合,os._exit()
が呼び出された場合には,
終了処理関数は呼び出されません。
) |
) |
) |
利用可能: Unix. バージョン 2.2 で 新たに追加 された仕様です。
) |
None
を返します。
nl_langinfo(CODESET)
が返す
ユーザの設定となります。
nl_langinfo(CODESET)
が失敗するとNoneを返します。
'mbcs'
を返しますが、これはある Unicode 文字列をバイト文字列に明示的に変換
して、ファイル名として使うと同じファイルを指すようにしたい場合に、
アプリケーションが使わねばならないエンコーディングです。
object) |
) |
[depth]) |
この関数は、内部的な、特殊な用途にのみ利用することができます。
) |
platformは、以下の値となります:
Constant | Platform |
---|---|
0 (VER_PLATFORM_WIN32s) | Win32s on Windows 3.1 |
1 (VER_PLATFORM_WIN32_WINDOWS) | Windows 95/98/ME |
2 (VER_PLATFORM_WIN32_NT) | Windows NT/2000/XP |
3 (VER_PLATFORM_WIN32_CE) | Windows CE |
この関数は、Win32 GetVersionEx()関数を呼び出します。詳細は マイクロソフトのドキュメントを参照してください。
利用可能: Windows. バージョン 2.3 で 新たに追加 された仕様です。
if sys.hexversion >= 0x010502F0: # use some advanced feature ... else: # use an alternative implementation or warn the user ...
version_info
を使用してください。
バージョン 1.5.2 で 新たに追加 された仕様です。
変数の意味は、上のexc_info()の戻り値と同じです。対話セッシ
ョンを実行するスレッドは常に一つだけなので、exc_type
のようにス
レッドに関する問題は発生しません。
-maxint-1
となります。正負の最大数が非対称です
が、これは2の補数計算を行うためです。
開始時に初期化された後、リストの先頭(path[0]
)にはPythonインター
プリタを起動するために指定したスクリプトのディレクトリが挿入されます。
スクリプトのディレクトリがない(インタープリタで対話セッションで起
動された時や、スクリプトを標準入力から読み込む場合など)場合、
path[0]
には空文字列となり、Pythonはカレントディレクトリからモジ
ュールの検索を開始します。スクリプトディレクトリは、
PYTHONPATHで指定したディレクトリの前に挿入されますので
注意が必要です。
必要に応じて、プログラム内で自由に変更することができます。
バージョン 2.3 で 変更 された仕様: Unicode 文字列が無視されなくなりました
'sunos5'
, 'linux1'
等)。path
にプラットフォーム別のサブディレクトリを追加する場
合などに利用します。
'/usr/local'
になります。この値は
ビルド時にconfigureスクリプトの--prefix引数で
指定する事ができます。Pythonライブラリの主要部分は
prefix + '/lib/pythonversion'
にインストールされ、プラット
フォーム非依存なヘッダファイル(pyconfig.h以外)は
prefix + '/include/pythonversion'
に格納されます
(但しversionはversion[:3]
)。
'»> '
と
'... '
です。文字列以外のオブジェクトを指定した場合、インタープ
リタが対話コマンドを読み込むごとにオブジェクトのstr()を評価
します。この機能は、動的に変化するプロンプトを実装する場合に利用しま
す。
interval) |
100
で、この場合 100 の仮想命令を実行するとチェックを行いま
す。この値を大きくすればスレッドを利用するプログラムのパフォーマンスが
向上します。この値が<=0
以下の場合、全ての仮想命令を実行するたび
にチェックを行い、レスポンス速度と最大になりますがオーバヘッドもまた最
大となります。
name) |
n) |
sys.setdlopenflags(0)
とすれば、モジ
ュールインポート時にシンボルの遅延解決を行う事ができます。シンボルを拡
張モジュール間で共有する場合には、
sys.setdlopenflags(dl.RTLD_NOW | dl.RTLD_GLOBAL)
と指定します。
フラグの定義名はdlかDLFCNで定義されています。
DLFCNが存在しない場合、h2pyスクリプトを使って
/usr/include/dlfcn.hから生成することができます。
利用可能: Unix. バージョン 2.2 で 新たに追加 された仕様です。
profilefunc) |
None
を返します。
limit) |
limitの最大値はプラットフォームによって異なります。深い再帰処理 が必要な場合にはプラットフォームがサポートしている範囲内でより大きな値 を指定することができますが、この値が大きすぎればクラッシュするので注意 が必要です。
tracefunc) |
on_flag) |
stdin
はスクリプトの読み込みを除く全ての入力処理で使
用され、input()やraw_input()
もstdin
から読み込みます。stdout
は、printや式の評価結果、input()・
raw_input()のプロンプトの出力先となります。インタープリタの
プロンプトは(ほとんど)stderr
に出力されます。stdout
と
stderr
は必ずしも組み込みのファイルオブジェクトである必要はな
く、write()メソッドを持つオブジェクトであれば使用することがで
きます。stdout
とstderr
を別のオブジェクトに置き換えても、
os.popen()・os.system() ・osの
exec*()などから起動されたプロセスが使用する標準I/Oストリー
ムは変更されません。
stdin
・stderr
・stdout
の値を保存し
ます。終了処理時や、不正なオブジェクトが指定された場合に元の値に復旧す
るために使用します。
1000
)。0
以下の値が設定
された場合、トレースバック情報は出力されず例外型と例外値のみが出力さ
れます。
'バージョン(#ビルド番号,
ビルド日付, ビルド時間)[コンパイラ]'
となります。先
頭の三文字は、バージョンごとのインストール先ディレクトリ内を識別するた
めに使用されます。例:
>>> import sys >>> sys.version '1.5.2 (#0 Apr 13 1999, 10:51:12) [MSC 32 bit (Intel)]'
'alpha'
, 'beta'
,
'candidate'
, or 'final'
の何れかです。Python 2.0の
version_info
は、(2, 0, 0, 'final', 0)
となります。
バージョン 2.0 で 新たに追加 された仕様です。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。