mirror of https://github.com/python/cpython
documentation for the zipimport module using contributed patch
(closes SF bug #853800; markup adjusted)
This commit is contained in:
parent
5e37d79567
commit
ffcbab073e
|
@ -125,6 +125,7 @@ LIBFILES= $(MANSTYLES) $(INDEXSTYLES) $(COMMONTEX) \
|
|||
lib/libmarshal.tex \
|
||||
lib/libwarnings.tex \
|
||||
lib/libimp.tex \
|
||||
lib/libzipimport.tex \
|
||||
lib/libpkgutil.tex \
|
||||
lib/libparser.tex \
|
||||
lib/libbltin.tex \
|
||||
|
|
|
@ -91,6 +91,7 @@ and how to embed it in other applications.
|
|||
\input{libmarshal}
|
||||
\input{libwarnings}
|
||||
\input{libimp}
|
||||
\input{libzipimport}
|
||||
\input{libpkgutil}
|
||||
\input{libcode}
|
||||
\input{libcodeop}
|
||||
|
|
|
@ -0,0 +1,133 @@
|
|||
\section{\module{zipimport} ---
|
||||
Import modules from Zip archives}
|
||||
|
||||
\declaremodule{standard}{zipimport}
|
||||
\modulesynopsis{support for importing Python modules from ZIP archives.}
|
||||
\moduleauthor{Just van Rossum}{just@letterror.com}
|
||||
|
||||
\versionadded{2.3}
|
||||
|
||||
This module adds the ability to import Python modules (\file{*.py},
|
||||
\file{*.py[co]}) and packages from ZIP-format archives. It is usually
|
||||
not needed to use the \module{zipimport} module explicitly; it is
|
||||
automatically used by the builtin \keyword{import} mechanism for
|
||||
\code{sys.path} items that are paths to ZIP archives.
|
||||
|
||||
Typically, \code{sys.path} is a list of directory names as strings. This
|
||||
module also allows an item of \code{sys.path} to be a string naming a ZIP
|
||||
file archive. The ZIP archive can contain a subdirectory structure to
|
||||
support package imports, and a path within the archive can be specified to
|
||||
only import from a subdirectory. For example, the path
|
||||
\file{/tmp/example.zip/lib/} would only import from the
|
||||
\file{lib/} subdirectory within the archive.
|
||||
|
||||
Any files may be present in the ZIP archive, but only files \file{.py} and
|
||||
\file{.py[co]} are available for import. ZIP import of dynamic modules
|
||||
(\file{.pyd}, \file{.so}) is disallowed. Note that if an archive only
|
||||
contains \file{.py} files, Python will not attempt to modify the archive
|
||||
by adding the corresponding \file{.pyc} or \file{.pyo} file, meaning that
|
||||
if a ZIP archive doesn't contain \file{.pyc} files, importing may be rather
|
||||
slow.
|
||||
|
||||
Using the built-in \function{reload()} function will
|
||||
fail if called on a module loaded from a ZIP archive; it is unlikely that
|
||||
\function{reload()} would be needed, since this would imply that the ZIP
|
||||
has been altered during runtime.
|
||||
|
||||
The available attributes of this module are:
|
||||
|
||||
\begin{excdesc}{ZipImporterError}
|
||||
Exception raised by zipimporter objects. It's a subclass of
|
||||
\exception{ImportError}, so it can be caught as \exception{ImportError},
|
||||
too.
|
||||
\end{excdesc}
|
||||
|
||||
\begin{classdesc*}{zipimporter}
|
||||
The class for importing ZIP files. See
|
||||
``\citetitle{zipimporter Objects}'' (section \ref{zipimporter-objects})
|
||||
for constructor details.
|
||||
\end{classdesc*}
|
||||
|
||||
|
||||
\begin{seealso}
|
||||
\seetitle[http://www.pkware.com/appnote.html]{PKZIP Application
|
||||
Note}{Documentation on the ZIP file format by Phil
|
||||
Katz, the creator of the format and algorithms used.}
|
||||
|
||||
\seepep{0273}{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.}
|
||||
|
||||
\seepep{0302}{New Import Hooks}{The PEP to add the import hooks that help
|
||||
this module work.}
|
||||
\end{seealso}
|
||||
|
||||
|
||||
\subsection{zipimporter Objects \label{zipimporter-objects}}
|
||||
|
||||
\begin{classdesc}{zipimporter}{archivepath}
|
||||
Create a new zipimporter instance. \var{archivepath} must be a path to
|
||||
a zipfile. \class{ZipImportError} is raised if \var{archivepath} doesn't
|
||||
point to a valid ZIP archive.
|
||||
\end{classdesc}
|
||||
|
||||
\begin{methoddesc}{find_module}{fullname\optional{, path}}
|
||||
Search for a module specified by \var{fullname}. \var{fullname} must be
|
||||
the fully qualified (dotted) module name. It returns the zipimporter
|
||||
instance itself if the module was found, or \constant{None} if it wasn't.
|
||||
The optional \var{path} argument is ignored---it's there for
|
||||
compatibility with the importer protocol.
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}{get_code}{fullname}
|
||||
Return the code object for the specified module. Raise
|
||||
\class{ZipImportError} if the module couldn't be found.
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}{get_data}{pathname}
|
||||
Return the data associated with \var{pathname}. Raise \exception{IOError}
|
||||
if the file wasn't found.
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}{get_source}{fullname}
|
||||
Return the source code for the specified module. Raise
|
||||
\class{ZipImportError} if the module couldn't be found, return
|
||||
\constant{None} if the archive does contain the module, but has
|
||||
no source for it.
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}{is_package}{fullname}
|
||||
Return True if the module specified by \var{fullname} is a package.
|
||||
Raise \class{ZipImportError} if the module couldn't be found.
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}{load_module}{fullname}
|
||||
Load the module specified by \var{fullname}. \var{fullname} must be the
|
||||
fully qualified (dotted) module name. It returns the imported
|
||||
module, or raises \class{ZipImportError} if it wasn't found.
|
||||
\end{methoddesc}
|
||||
|
||||
\subsection{Examples}
|
||||
\nodename{zipimport Examples}
|
||||
|
||||
Here is an example that imports a module from a ZIP archive - note that
|
||||
the \module{zipimport} module is not explicitly used.
|
||||
|
||||
\begin{verbatim}
|
||||
$ unzip -l /tmp/example.zip
|
||||
Archive: /tmp/example.zip
|
||||
Length Date Time Name
|
||||
-------- ---- ---- ----
|
||||
8467 11-26-02 22:30 jwzthreading.py
|
||||
-------- -------
|
||||
8467 1 file
|
||||
$ ./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'
|
||||
\end{verbatim}
|
Loading…
Reference in New Issue