/
usr
/
share
/
doc
/
python2-docs
/
html
/
c-api
/
/usr/share/doc/python2-docs/html/c-api
mkdir
upload
Name
Size
Mode
Actions
abstract.html
7475
0644
edit
dl
rm
allocation.html
18783
0644
edit
dl
rm
arg.html
61746
0644
edit
dl
rm
bool.html
10025
0644
edit
dl
rm
buffer.html
48743
0644
edit
dl
rm
bytearray.html
14205
0644
edit
dl
rm
capsule.html
20971
0644
edit
dl
rm
cell.html
11194
0644
edit
dl
rm
class.html
11417
0644
edit
dl
rm
cobject.html
12082
0644
edit
dl
rm
code.html
11664
0644
edit
dl
rm
codec.html
21321
0644
edit
dl
rm
complex.html
20897
0644
edit
dl
rm
concrete.html
15868
0644
edit
dl
rm
conversion.html
23406
0644
edit
dl
rm
datetime.html
26469
0644
edit
dl
rm
descriptor.html
12035
0644
edit
dl
rm
dict.html
33222
0644
edit
dl
rm
exceptions.html
92999
0644
edit
dl
rm
file.html
24313
0644
edit
dl
rm
float.html
17526
0644
edit
dl
rm
function.html
14312
0644
edit
dl
rm
gcsupport.html
23878
0644
edit
dl
rm
gen.html
8524
0644
edit
dl
rm
import.html
35730
0644
edit
dl
rm
index.html
13463
0644
edit
dl
rm
init.html
107309
0644
edit
dl
rm
int.html
20528
0644
edit
dl
rm
intro.html
66178
0644
edit
dl
rm
iter.html
10162
0644
edit
dl
rm
iterator.html
11830
0644
edit
dl
rm
list.html
24670
0644
edit
dl
rm
long.html
33667
0644
edit
dl
rm
mapping.html
16026
0644
edit
dl
rm
marshal.html
16257
0644
edit
dl
rm
memory.html
32963
0644
edit
dl
rm
method.html
13606
0644
edit
dl
rm
module.html
17150
0644
edit
dl
rm
none.html
8027
0644
edit
dl
rm
number.html
48578
0644
edit
dl
rm
objbuffer.html
12307
0644
edit
dl
rm
object.html
59828
0644
edit
dl
rm
objimpl.html
7249
0644
edit
dl
rm
refcounting.html
12844
0644
edit
dl
rm
reflection.html
10691
0644
edit
dl
rm
sequence.html
32324
0644
edit
dl
rm
set.html
31735
0644
edit
dl
rm
slice.html
13587
0644
edit
dl
rm
string.html
36740
0644
edit
dl
rm
structures.html
39419
0644
edit
dl
rm
sys.html
21239
0644
edit
dl
rm
tuple.html
21489
0644
edit
dl
rm
type.html
14996
0644
edit
dl
rm
typeobj.html
181174
0644
edit
dl
rm
unicode.html
118633
0644
edit
dl
rm
utilities.html
7588
0644
edit
dl
rm
veryhigh.html
44510
0644
edit
dl
rm
weakref.html
13603
0644
edit
dl
rm
Edit:
/usr/share/doc/python2-docs/html/c-api/import.html
(35730B)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Importing Modules — Python 2.7.16 documentation</title> <link rel="stylesheet" href="../_static/classic.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> <script type="text/javascript" src="../_static/jquery.js"></script> <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <script type="text/javascript" src="../_static/sidebar.js"></script> <link rel="search" type="application/opensearchdescription+xml" title="Search within Python 2.7.16 documentation" href="../_static/opensearch.xml"/> <link rel="author" title="About these documents" href="../about.html" /> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> <link rel="copyright" title="Copyright" href="../copyright.html" /> <link rel="next" title="Data marshalling support" href="marshal.html" /> <link rel="prev" title="Operating System Utilities" href="sys.html" /> <link rel="shortcut icon" type="image/png" href="../_static/py.png" /> <link rel="canonical" href="https://docs.python.org/2/c-api/import.html" /> <script type="text/javascript" src="../_static/copybutton.js"></script> </head><body> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > <a href="../py-modindex.html" title="Python Module Index" >modules</a> |</li> <li class="right" > <a href="marshal.html" title="Data marshalling support" accesskey="N">next</a> |</li> <li class="right" > <a href="sys.html" title="Operating System Utilities" accesskey="P">previous</a> |</li> <li><img src="../_static/py.png" alt="" style="vertical-align: middle; margin-top: -1px"/></li> <li><a href="https://www.python.org/">Python</a> »</li> <li> <a href="../index.html">Python 2.7.16 documentation</a> » </li> <li class="nav-item nav-item-1"><a href="index.html" >Python/C API Reference Manual</a> »</li> <li class="nav-item nav-item-2"><a href="utilities.html" accesskey="U">Utilities</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <div class="section" id="importing-modules"> <span id="importing"></span><h1>Importing Modules<a class="headerlink" href="#importing-modules" title="Permalink to this headline">¶</a></h1> <dl class="function"> <dt id="c.PyImport_ImportModule"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyImport_ImportModule</code><span class="sig-paren">(</span>const char<em> *name</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyImport_ImportModule" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p id="index-0">This is a simplified interface to <a class="reference internal" href="#c.PyImport_ImportModuleEx" title="PyImport_ImportModuleEx"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ImportModuleEx()</span></code></a> below, leaving the <em>globals</em> and <em>locals</em> arguments set to <em>NULL</em> and <em>level</em> set to 0. When the <em>name</em> argument contains a dot (when it specifies a submodule of a package), the <em>fromlist</em> argument is set to the list <code class="docutils literal notranslate"><span class="pre">['*']</span></code> so that the return value is the named module rather than the top-level package containing it as would otherwise be the case. (Unfortunately, this has an additional side effect when <em>name</em> in fact specifies a subpackage instead of a submodule: the submodules specified in the package’s <code class="docutils literal notranslate"><span class="pre">__all__</span></code> variable are loaded.) Return a new reference to the imported module, or <em>NULL</em> with an exception set on failure. Before Python 2.4, the module may still be created in the failure case — examine <code class="docutils literal notranslate"><span class="pre">sys.modules</span></code> to find out. Starting with Python 2.4, a failing import of a module no longer leaves the module in <code class="docutils literal notranslate"><span class="pre">sys.modules</span></code>.</p> <div class="versionchanged"> <p><span class="versionmodified">Changed in version 2.4: </span>Failing imports remove incomplete module objects.</p> </div> <div class="versionchanged"> <p><span class="versionmodified">Changed in version 2.6: </span>Always uses absolute imports.</p> </div> </dd></dl> <dl class="function"> <dt id="c.PyImport_ImportModuleNoBlock"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyImport_ImportModuleNoBlock</code><span class="sig-paren">(</span>const char<em> *name</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyImport_ImportModuleNoBlock" title="Permalink to this definition">¶</a></dt> <dd><p>This version of <a class="reference internal" href="#c.PyImport_ImportModule" title="PyImport_ImportModule"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ImportModule()</span></code></a> does not block. It’s intended to be used in C functions that import other modules to execute a function. The import may block if another thread holds the import lock. The function <a class="reference internal" href="#c.PyImport_ImportModuleNoBlock" title="PyImport_ImportModuleNoBlock"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ImportModuleNoBlock()</span></code></a> never blocks. It first tries to fetch the module from sys.modules and falls back to <a class="reference internal" href="#c.PyImport_ImportModule" title="PyImport_ImportModule"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ImportModule()</span></code></a> unless the lock is held, in which case the function will raise an <a class="reference internal" href="../library/exceptions.html#exceptions.ImportError" title="exceptions.ImportError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ImportError</span></code></a>.</p> <div class="versionadded"> <p><span class="versionmodified">New in version 2.6.</span></p> </div> </dd></dl> <dl class="function"> <dt id="c.PyImport_ImportModuleEx"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyImport_ImportModuleEx</code><span class="sig-paren">(</span>char<em> *name</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *globals</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *locals</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *fromlist</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyImport_ImportModuleEx" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p id="index-1">Import a module. This is best described by referring to the built-in Python function <a class="reference internal" href="../library/functions.html#__import__" title="__import__"><code class="xref py py-func docutils literal notranslate"><span class="pre">__import__()</span></code></a>, as the standard <a class="reference internal" href="../library/functions.html#__import__" title="__import__"><code class="xref py py-func docutils literal notranslate"><span class="pre">__import__()</span></code></a> function calls this function directly.</p> <p>The return value is a new reference to the imported module or top-level package, or <em>NULL</em> with an exception set on failure (before Python 2.4, the module may still be created in this case). Like for <a class="reference internal" href="../library/functions.html#__import__" title="__import__"><code class="xref py py-func docutils literal notranslate"><span class="pre">__import__()</span></code></a>, the return value when a submodule of a package was requested is normally the top-level package, unless a non-empty <em>fromlist</em> was given.</p> <div class="versionchanged"> <p><span class="versionmodified">Changed in version 2.4: </span>Failing imports remove incomplete module objects.</p> </div> <div class="versionchanged"> <p><span class="versionmodified">Changed in version 2.6: </span>The function is an alias for <a class="reference internal" href="#c.PyImport_ImportModuleLevel" title="PyImport_ImportModuleLevel"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ImportModuleLevel()</span></code></a> with <code class="docutils literal notranslate"><span class="pre">-1</span></code> as level, meaning relative import.</p> </div> </dd></dl> <dl class="function"> <dt id="c.PyImport_ImportModuleLevel"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyImport_ImportModuleLevel</code><span class="sig-paren">(</span>char<em> *name</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *globals</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *locals</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *fromlist</em>, int<em> level</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyImport_ImportModuleLevel" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Import a module. This is best described by referring to the built-in Python function <a class="reference internal" href="../library/functions.html#__import__" title="__import__"><code class="xref py py-func docutils literal notranslate"><span class="pre">__import__()</span></code></a>, as the standard <a class="reference internal" href="../library/functions.html#__import__" title="__import__"><code class="xref py py-func docutils literal notranslate"><span class="pre">__import__()</span></code></a> function calls this function directly.</p> <p>The return value is a new reference to the imported module or top-level package, or <em>NULL</em> with an exception set on failure. Like for <a class="reference internal" href="../library/functions.html#__import__" title="__import__"><code class="xref py py-func docutils literal notranslate"><span class="pre">__import__()</span></code></a>, the return value when a submodule of a package was requested is normally the top-level package, unless a non-empty <em>fromlist</em> was given.</p> <div class="versionadded"> <p><span class="versionmodified">New in version 2.5.</span></p> </div> </dd></dl> <dl class="function"> <dt id="c.PyImport_Import"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyImport_Import</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *name</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyImport_Import" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p id="index-2">This is a higher-level interface that calls the current “import hook function”. It invokes the <a class="reference internal" href="../library/functions.html#__import__" title="__import__"><code class="xref py py-func docutils literal notranslate"><span class="pre">__import__()</span></code></a> function from the <code class="docutils literal notranslate"><span class="pre">__builtins__</span></code> of the current globals. This means that the import is done using whatever import hooks are installed in the current environment, e.g. by <a class="reference internal" href="../library/rexec.html#module-rexec" title="rexec: Basic restricted execution framework. (deprecated)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">rexec</span></code></a> or <code class="xref py py-mod docutils literal notranslate"><span class="pre">ihooks</span></code>.</p> <div class="versionchanged"> <p><span class="versionmodified">Changed in version 2.6: </span>Always uses absolute imports.</p> </div> </dd></dl> <dl class="function"> <dt id="c.PyImport_ReloadModule"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyImport_ReloadModule</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *m</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyImport_ReloadModule" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p id="index-3">Reload a module. This is best described by referring to the built-in Python function <a class="reference internal" href="../library/functions.html#reload" title="reload"><code class="xref py py-func docutils literal notranslate"><span class="pre">reload()</span></code></a>, as the standard <a class="reference internal" href="../library/functions.html#reload" title="reload"><code class="xref py py-func docutils literal notranslate"><span class="pre">reload()</span></code></a> function calls this function directly. Return a new reference to the reloaded module, or <em>NULL</em> with an exception set on failure (the module still exists in this case).</p> </dd></dl> <dl class="function"> <dt id="c.PyImport_AddModule"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyImport_AddModule</code><span class="sig-paren">(</span>const char<em> *name</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyImport_AddModule" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: Borrowed reference.</em><p>Return the module object corresponding to a module name. The <em>name</em> argument may be of the form <code class="docutils literal notranslate"><span class="pre">package.module</span></code>. First check the modules dictionary if there’s one there, and if not, create a new one and insert it in the modules dictionary. Return <em>NULL</em> with an exception set on failure.</p> <div class="admonition note"> <p class="first admonition-title">Note</p> <p class="last">This function does not load or import the module; if the module wasn’t already loaded, you will get an empty module object. Use <a class="reference internal" href="#c.PyImport_ImportModule" title="PyImport_ImportModule"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ImportModule()</span></code></a> or one of its variants to import a module. Package structures implied by a dotted name for <em>name</em> are not created if not already present.</p> </div> </dd></dl> <dl class="function"> <dt id="c.PyImport_ExecCodeModule"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyImport_ExecCodeModule</code><span class="sig-paren">(</span>char<em> *name</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *co</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyImport_ExecCodeModule" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p id="index-4">Given a module name (possibly of the form <code class="docutils literal notranslate"><span class="pre">package.module</span></code>) and a code object read from a Python bytecode file or obtained from the built-in function <a class="reference internal" href="../library/functions.html#compile" title="compile"><code class="xref py py-func docutils literal notranslate"><span class="pre">compile()</span></code></a>, load the module. Return a new reference to the module object, or <em>NULL</em> with an exception set if an error occurred. Before Python 2.4, the module could still be created in error cases. Starting with Python 2.4, <em>name</em> is removed from <a class="reference internal" href="../library/sys.html#sys.modules" title="sys.modules"><code class="xref py py-attr docutils literal notranslate"><span class="pre">sys.modules</span></code></a> in error cases, and even if <em>name</em> was already in <a class="reference internal" href="../library/sys.html#sys.modules" title="sys.modules"><code class="xref py py-attr docutils literal notranslate"><span class="pre">sys.modules</span></code></a> on entry to <a class="reference internal" href="#c.PyImport_ExecCodeModule" title="PyImport_ExecCodeModule"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ExecCodeModule()</span></code></a>. Leaving incompletely initialized modules in <a class="reference internal" href="../library/sys.html#sys.modules" title="sys.modules"><code class="xref py py-attr docutils literal notranslate"><span class="pre">sys.modules</span></code></a> is dangerous, as imports of such modules have no way to know that the module object is an unknown (and probably damaged with respect to the module author’s intents) state.</p> <p>The module’s <code class="xref py py-attr docutils literal notranslate"><span class="pre">__file__</span></code> attribute will be set to the code object’s <code class="xref c c-member docutils literal notranslate"><span class="pre">co_filename</span></code>.</p> <p>This function will reload the module if it was already imported. See <a class="reference internal" href="#c.PyImport_ReloadModule" title="PyImport_ReloadModule"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ReloadModule()</span></code></a> for the intended way to reload a module.</p> <p>If <em>name</em> points to a dotted name of the form <code class="docutils literal notranslate"><span class="pre">package.module</span></code>, any package structures not already created will still not be created.</p> <div class="versionchanged"> <p><span class="versionmodified">Changed in version 2.4: </span><em>name</em> is removed from <a class="reference internal" href="../library/sys.html#sys.modules" title="sys.modules"><code class="xref py py-attr docutils literal notranslate"><span class="pre">sys.modules</span></code></a> in error cases.</p> </div> </dd></dl> <dl class="function"> <dt id="c.PyImport_ExecCodeModuleEx"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyImport_ExecCodeModuleEx</code><span class="sig-paren">(</span>char<em> *name</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *co</em>, char<em> *pathname</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyImport_ExecCodeModuleEx" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Like <a class="reference internal" href="#c.PyImport_ExecCodeModule" title="PyImport_ExecCodeModule"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ExecCodeModule()</span></code></a>, but the <code class="xref py py-attr docutils literal notranslate"><span class="pre">__file__</span></code> attribute of the module object is set to <em>pathname</em> if it is non-<code class="docutils literal notranslate"><span class="pre">NULL</span></code>.</p> </dd></dl> <dl class="function"> <dt id="c.PyImport_GetMagicNumber"> long <code class="descname">PyImport_GetMagicNumber</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#c.PyImport_GetMagicNumber" title="Permalink to this definition">¶</a></dt> <dd><p>Return the magic number for Python bytecode files (a.k.a. <code class="file docutils literal notranslate"><span class="pre">.pyc</span></code> and <code class="file docutils literal notranslate"><span class="pre">.pyo</span></code> files). The magic number should be present in the first four bytes of the bytecode file, in little-endian byte order.</p> </dd></dl> <dl class="function"> <dt id="c.PyImport_GetModuleDict"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyImport_GetModuleDict</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#c.PyImport_GetModuleDict" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: Borrowed reference.</em><p>Return the dictionary used for the module administration (a.k.a. <code class="docutils literal notranslate"><span class="pre">sys.modules</span></code>). Note that this is a per-interpreter variable.</p> </dd></dl> <dl class="function"> <dt id="c.PyImport_GetImporter"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyImport_GetImporter</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *path</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyImport_GetImporter" title="Permalink to this definition">¶</a></dt> <dd><p>Return an importer object for a <a class="reference internal" href="../library/sys.html#sys.path" title="sys.path"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path</span></code></a>/<code class="xref py py-attr docutils literal notranslate"><span class="pre">pkg.__path__</span></code> item <em>path</em>, possibly by fetching it from the <a class="reference internal" href="../library/sys.html#sys.path_importer_cache" title="sys.path_importer_cache"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path_importer_cache</span></code></a> dict. If it wasn’t yet cached, traverse <a class="reference internal" href="../library/sys.html#sys.path_hooks" title="sys.path_hooks"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path_hooks</span></code></a> until a hook is found that can handle the path item. Return <code class="docutils literal notranslate"><span class="pre">None</span></code> if no hook could; this tells our caller it should fall back to the built-in import mechanism. Cache the result in <a class="reference internal" href="../library/sys.html#sys.path_importer_cache" title="sys.path_importer_cache"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path_importer_cache</span></code></a>. Return a new reference to the importer object.</p> <div class="versionadded"> <p><span class="versionmodified">New in version 2.6.</span></p> </div> </dd></dl> <dl class="function"> <dt id="c._PyImport_Init"> void <code class="descname">_PyImport_Init</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#c._PyImport_Init" title="Permalink to this definition">¶</a></dt> <dd><p>Initialize the import mechanism. For internal use only.</p> </dd></dl> <dl class="function"> <dt id="c.PyImport_Cleanup"> void <code class="descname">PyImport_Cleanup</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#c.PyImport_Cleanup" title="Permalink to this definition">¶</a></dt> <dd><p>Empty the module table. For internal use only.</p> </dd></dl> <dl class="function"> <dt id="c._PyImport_Fini"> void <code class="descname">_PyImport_Fini</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#c._PyImport_Fini" title="Permalink to this definition">¶</a></dt> <dd><p>Finalize the import mechanism. For internal use only.</p> </dd></dl> <dl class="function"> <dt id="c._PyImport_FindExtension"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">_PyImport_FindExtension</code><span class="sig-paren">(</span>char<em> *</em>, char<em> *</em><span class="sig-paren">)</span><a class="headerlink" href="#c._PyImport_FindExtension" title="Permalink to this definition">¶</a></dt> <dd><p>For internal use only.</p> </dd></dl> <dl class="function"> <dt id="c._PyImport_FixupExtension"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">_PyImport_FixupExtension</code><span class="sig-paren">(</span>char<em> *</em>, char<em> *</em><span class="sig-paren">)</span><a class="headerlink" href="#c._PyImport_FixupExtension" title="Permalink to this definition">¶</a></dt> <dd><p>For internal use only.</p> </dd></dl> <dl class="function"> <dt id="c.PyImport_ImportFrozenModule"> int <code class="descname">PyImport_ImportFrozenModule</code><span class="sig-paren">(</span>char<em> *name</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyImport_ImportFrozenModule" title="Permalink to this definition">¶</a></dt> <dd><p>Load a frozen module named <em>name</em>. Return <code class="docutils literal notranslate"><span class="pre">1</span></code> for success, <code class="docutils literal notranslate"><span class="pre">0</span></code> if the module is not found, and <code class="docutils literal notranslate"><span class="pre">-1</span></code> with an exception set if the initialization failed. To access the imported module on a successful load, use <a class="reference internal" href="#c.PyImport_ImportModule" title="PyImport_ImportModule"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ImportModule()</span></code></a>. (Note the misnomer — this function would reload the module if it was already imported.)</p> </dd></dl> <dl class="type"> <dt id="c._frozen"> struct <code class="descname">_frozen</code><a class="headerlink" href="#c._frozen" title="Permalink to this definition">¶</a></dt> <dd><p id="index-5">This is the structure type definition for frozen module descriptors, as generated by the <strong class="program">freeze</strong> utility (see <code class="file docutils literal notranslate"><span class="pre">Tools/freeze/</span></code> in the Python source distribution). Its definition, found in <code class="file docutils literal notranslate"><span class="pre">Include/import.h</span></code>, is:</p> <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="n">_frozen</span> <span class="p">{</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">;</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">*</span><span class="n">code</span><span class="p">;</span> <span class="kt">int</span> <span class="n">size</span><span class="p">;</span> <span class="p">};</span> </pre></div> </div> </dd></dl> <dl class="var"> <dt id="c.PyImport_FrozenModules"> struct <a class="reference internal" href="#c._frozen" title="_frozen">_frozen</a>* <code class="descname">PyImport_FrozenModules</code><a class="headerlink" href="#c.PyImport_FrozenModules" title="Permalink to this definition">¶</a></dt> <dd><p>This pointer is initialized to point to an array of <code class="xref c c-type docutils literal notranslate"><span class="pre">struct</span> <span class="pre">_frozen</span></code> records, terminated by one whose members are all <em>NULL</em> or zero. When a frozen module is imported, it is searched in this table. Third-party code could play tricks with this to provide a dynamically created collection of frozen modules.</p> </dd></dl> <dl class="function"> <dt id="c.PyImport_AppendInittab"> int <code class="descname">PyImport_AppendInittab</code><span class="sig-paren">(</span>const char<em> *name</em>, void (<em>*initfunc</em>)(void)<span class="sig-paren">)</span><a class="headerlink" href="#c.PyImport_AppendInittab" title="Permalink to this definition">¶</a></dt> <dd><p>Add a single module to the existing table of built-in modules. This is a convenience wrapper around <a class="reference internal" href="#c.PyImport_ExtendInittab" title="PyImport_ExtendInittab"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ExtendInittab()</span></code></a>, returning <code class="docutils literal notranslate"><span class="pre">-1</span></code> if the table could not be extended. The new module can be imported by the name <em>name</em>, and uses the function <em>initfunc</em> as the initialization function called on the first attempted import. This should be called before <a class="reference internal" href="init.html#c.Py_Initialize" title="Py_Initialize"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_Initialize()</span></code></a>.</p> </dd></dl> <dl class="type"> <dt id="c._inittab"> struct <code class="descname">_inittab</code><a class="headerlink" href="#c._inittab" title="Permalink to this definition">¶</a></dt> <dd><p>Structure describing a single entry in the list of built-in modules. Each of these structures gives the name and initialization function for a module built into the interpreter. Programs which embed Python may use an array of these structures in conjunction with <a class="reference internal" href="#c.PyImport_ExtendInittab" title="PyImport_ExtendInittab"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ExtendInittab()</span></code></a> to provide additional built-in modules. The structure is defined in <code class="file docutils literal notranslate"><span class="pre">Include/import.h</span></code> as:</p> <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="n">_inittab</span> <span class="p">{</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">;</span> <span class="kt">void</span> <span class="p">(</span><span class="o">*</span><span class="n">initfunc</span><span class="p">)(</span><span class="kt">void</span><span class="p">);</span> <span class="p">};</span> </pre></div> </div> </dd></dl> <dl class="function"> <dt id="c.PyImport_ExtendInittab"> int <code class="descname">PyImport_ExtendInittab</code><span class="sig-paren">(</span>struct <a class="reference internal" href="#c._inittab" title="_inittab">_inittab</a><em> *newtab</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyImport_ExtendInittab" title="Permalink to this definition">¶</a></dt> <dd><p>Add a collection of modules to the table of built-in modules. The <em>newtab</em> array must end with a sentinel entry which contains <em>NULL</em> for the <code class="xref py py-attr docutils literal notranslate"><span class="pre">name</span></code> field; failure to provide the sentinel value can result in a memory fault. Returns <code class="docutils literal notranslate"><span class="pre">0</span></code> on success or <code class="docutils literal notranslate"><span class="pre">-1</span></code> if insufficient memory could be allocated to extend the internal table. In the event of failure, no modules are added to the internal table. This should be called before <a class="reference internal" href="init.html#c.Py_Initialize" title="Py_Initialize"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_Initialize()</span></code></a>.</p> </dd></dl> </div> </div> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> <h4>Previous topic</h4> <p class="topless"><a href="sys.html" title="previous chapter">Operating System Utilities</a></p> <h4>Next topic</h4> <p class="topless"><a href="marshal.html" title="next chapter">Data marshalling support</a></p> <div role="note" aria-label="source link"> <h3>This Page</h3> <ul class="this-page-menu"> <li><a href="../_sources/c-api/import.rst.txt" rel="nofollow">Show Source</a></li> </ul> </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> <input type="text" name="q" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> <li class="right" > <a href="../py-modindex.html" title="Python Module Index" >modules</a> |</li> <li class="right" > <a href="marshal.html" title="Data marshalling support" >next</a> |</li> <li class="right" > <a href="sys.html" title="Operating System Utilities" >previous</a> |</li> <li><img src="../_static/py.png" alt="" style="vertical-align: middle; margin-top: -1px"/></li> <li><a href="https://www.python.org/">Python</a> »</li> <li> <a href="../index.html">Python 2.7.16 documentation</a> » </li> <li class="nav-item nav-item-1"><a href="index.html" >Python/C API Reference Manual</a> »</li> <li class="nav-item nav-item-2"><a href="utilities.html" >Utilities</a> »</li> </ul> </div> <div class="footer"> © <a href="../copyright.html">Copyright</a> 1990-2019, Python Software Foundation. <br /> The Python Software Foundation is a non-profit corporation. <a href="https://www.python.org/psf/donations/">Please donate.</a> <br /> Last updated on Mar 27, 2019. <a href="../bugs.html">Found a bug</a>? <br /> Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.7.6. </div> </body> </html>
Save
cmd:
run