このモジュールはimport文を実装するために使われているメカニズムへのインターフェイスを提供します。次の定数と関数が定義されています:
) |
) |
(suffix, mode, type)
を持ちます。ここで、suffixは探すファイル名を作るためにモジュール名に追加する文字列です。そのファイルをオープンするために、modeは組み込みopen()関数へ渡されるモード文字列です(これはテキストファイル対しては'r'
、バイナリファイルに対しては'rb'
となります)。typeはファイル型で、以下で説明する値PY_SOURCE、PY_COMPILED、あるいは、C_EXTENSIONの一つを取ります。
name[, path]) |
None
ならば、sys.path
のディレクトリ名のリストが検索されます。しかし、最初にいくつか特別な場所を検索します。所定の名前(C_BUILTIN)をもつ組み込みモジュールを見つけようとします。それから、フリーズされたモジュール(PY_FROZEN)、同様にいくつかのシステムと他の場所がみられます(Macでは、リソース(PY_RESOURCE)を探します。Windowsでは、特定のファイルを指すレジストリの中を見ます)。
検索が成功すれば、戻り値は三つ組み(file, pathname, description)
です。ここで、fileは先頭に位置を合わされたオープンファイルオブジェクトで、pathnameは見つかったファイルのパス名です。そして、descriptionはget_suffixes()が返すリストに含まれているような三つ組みで、見つかったモジュールの種類を説明しています。モジュールがファイルの中にあるならば、返されたfileはNone
で、filenameは空文字列、descriptionタプルはその拡張子とモードに対して空文字列を含みます。モジュール型は上の括弧の中に示されます。検索が失敗すれば、ImportErrorが発生します。他の例外は引数または環境に問題があることを示唆します。
この関数は階層的なモジュール名(ドットを含んだ名前)を扱いません。P.M、すなわち、パッケージPのサブモジュールMを見つけるためには、パッケージPを見つけてロードするためにfind_module()とload_module()を使い、それからP.__path__
に設定されたpath引数とともにfind_module()を使ってください。P自身がドット名のときは、このレシピを再帰的に適用してください。
name, file, filename, description) |
None
と''
であっても構いません。get_suffixes()が返すようにdescription引数はタプルで、どの種類のモジュールがロードされなければならないかを説明するものです。
ロードが成功したならば、戻り値はモジュールオブジェクトです。そうでなければ、例外(たいていはImportError)が発生します。
重要: file引数がNone
でなければ、例外が発生した時でさえ呼び出し側にはそれを閉じる責任があります。これを行うには、try ... finally文をつかうことが最も良いです。
name) |
sys.modules
に挿入されません。
) |
True
を返します。そうでなければ、False
を返します。スレッドのないプラットホームでは、常にFalse
を返します。
スレッドのあるプラットホームでは、インポートが完了するまでインポートを実行するスレッドは内部ロックを維持します。このロックは元のインポートが完了するまで他のスレッドがインポートすることを阻止します。言い換えると、元のスレッドがそのインポート(および、もしあるならば、それによって引き起こされるインポート)の途中で構築した不完全なモジュールオブジェクトを、他のスレッドが見られないようにします。
) |
) |
整数値をもつ次の定数はこのモジュールの中で定義されており、find_module()の検索結果を表すために使われます。
次の定数と関数は旧式のものです。それらの機能はfind_module()やload_module()を使って利用できます。後方互換性のために残されています:
name) |
None
を返します。
name) |
None
を返します。(フリーズされたモジュールはPythonで書かれたモジュールで、そのコンパイルされたバイトコードオブジェクトがPythonのfreezeユーティリティを使ってカスタムビルトPythonインタープリタへ組み込まれています。差し当たり、Tools/freeze/を参照してください。)
name) |
1
を返します。nameという名前の再度初期化できない組み込みモジュールがある場合は、-1
を返します(init_builtin()を参照してください)。nameという名前の組み込みモジュールがない場合は、0
を返します。
name) |
True
を返します。または、そのようなモジュールがない場合は、False
を返します。
name, pathname[, file]) |
name, pathname[, file]) |
name, pathname[, file]) |
path_string) |
Pythonは、ディレクトリでなくsys.path_hooks
のどのパスフックでも処理されていないすべてのパスエントリに対して、この型のインスタンスをsys.path_importer_cache
に追加します。このインスタンスが持つメソッドは次のひとつです。
fullname [, path]) |
None
を返し、要求されたモジュールが見つからなかったことを表します。
バージョン 2.5 で 新たに追加 された仕様です。