バージョン 2.3 で 新たに追加 された仕様です。
このモジュールは次の単一の関数を提供します。
path, name) |
from pkgutil import extend_path __path__ = extend_path(__path__, __name__)
上記はパッケージの __path__
に sys.path
の全ディレクトリ
のサブディレクトリとしてパッケージ名と同じ名前を追加します。これは1つ
の論理的なパッケージの異なる部品を複数のディレクトリに分けて配布したい
ときに役立ちます。
同時に *.pkg の *
の部分が name 引数に指定された文
字列に一致するファイルの検索もおこないます。この機能は import
で始まる特別な行がないことを除き *.pth ファイルに似ています
(site の項を参照)。*.pkg は重複のチェックを除き、信
頼できるものとして扱われます。*.pkg ファイルの中に見つかったエ
ントリはファイルシステム上に実在するか否かを問わず、そのまますべてパス
に追加されます。(このような仕様です。)
入力パスがリストでない場合(フリーズされたパッケージのとき)は何もせずに リターンします。入力パスが変更されていなければ、アイテムを末尾に追加し ただけのコピーを返します。
sys.path
はシーケンスであることが前提になっています。
sys.path
の要素の内、実在するディレクトリを指す(ユニコードまた
は8ビットの)文字列となっていないものは無視されます。ファイル名として使っ
たときにエラーが発生する sys.path
のユニコード要素がある場合、
この関数(os.path.isdir() を実行している行)で例外が発生する
可能性があります。