|
The new zipimport module adds support for importing
modules from a ZIP-format archive. You don't need to import the
module explicitly; it will be automatically imported if a ZIP
archive's filename is added to sys.path. For example:
amk@nyman:~/src/python$ unzip -l /tmp/example.zip
Archive: /tmp/example.zip
Length Date Time Name
-------- ---- ---- ----
8467 11-26-02 22:30 jwzthreading.py
-------- -------
8467 1 file
amk@nyman:~/src/python$ ./python
Python 2.3 (#1, Aug 1 2003, 19:54:32)
>>> import sys
>>> sys.path.insert(0, '/tmp/example.zip') # Add .zip file to front of path
>>> import jwzthreading
>>> jwzthreading.__file__
'/tmp/example.zip/jwzthreading.py'
>>>
An entry in sys.path can now be the filename of a ZIP archive.
The ZIP archive can contain any kind of files, but only files named
*.py, *.pyc, or *.pyo can be imported. If an
archive only contains *.py files, Python will not attempt to
modify the archive by adding the corresponding *.pyc file, meaning
that if a ZIP archive doesn't contain *.pyc files, importing may be
rather slow.
A path within the archive can also be specified to only import from a
subdirectory; for example, the path /tmp/example.zip/lib/
would only import from the lib/ subdirectory within the
archive.
See Also:
- PEP 273, Import Modules from Zip Archives
- Written by James C. Ahlstrom,
who also provided an implementation.
Python 2.3 follows the specification in PEP 273,
but uses an implementation written by Just van Rossum
that uses the import hooks described in PEP 302.
See section 12 for a description of the new import hooks.
See About this document... for information on suggesting changes.
|