バージョン 2.3 で 新たに追加 された仕様です。
このモジュールは, Python モジュール (*.py,*.py[co]
やパッケージを ZIP 形式のアーカイブから import できるように
します。通常,zipimport を明示的に使う必要はありません;
組み込みの import は,sys.path
の要素が ZIP
アーカイブへのパスを指している場合にこのモジュールを自動的に
使います。
普通,sys.path
はディレクトリ名の文字列からなるリストです。
このモジュールを使うと,sys.path
の要素に ZIP ファイル
アーカイブを示す文字列を使えるようになります。ZIP アーカイブには
サブディレクトリ構造を含めることができ,パッケージの import を
サポートさせしたり,アーカイブ内のパスを指定してサブディレクトリ
下から import を行わせたりできます。例えば,
/tmp/example.zip/lib/ のように指定すると,アーカイブ中の
lib/ サブディレクトリ下だけから import を行います。
ZIP アーカイブ内にはどんなファイルを置いてもかまいませんが, import できるのは.py および .py[co] だけです。 動的モジュール (.pyd,.so) の ZIP import は行えません。 アーカイブ内に .py ファイルしか入っていない場合, Python がアーカイブを変更して, .py ファイルに対応する .pyc や.pyo ファイルを追加したりはしません。 つまり,ZIP アーカイブ中に .pyc が入っていない 場合, import はやや低速になるかもしれないので注意してください。
ZIP アーカイブからロードしたモジュールに対して組み込み関数 reload() を呼び出すと失敗します; reload() が 必要になるということは,実行時に ZIPファイルが置き換えられてしまう ことになり,あまり起こりそうにない状況だからです。
このモジュールで使える属性を以下に示します:
参考: