Lines Matching +full:is +full:- +full:module
1 :mod:`runpy` --- Locating and executing Python modules
4 .. module:: runpy
13 --------------
15 The :mod:`runpy` module is used to locate and run Python modules without
16 importing them first. Its main use is to implement the :option:`-m` command
17 line switch that allows scripts to be located using the Python module
20 The :mod:`runpy` module provides two functions:
26 module: __main__
28 Execute the code of the specified module and return the resulting module
29 globals dictionary. The module's code is first located using the standard
31 fresh module namespace.
33 If the supplied module name refers to a package rather than a normal
34 module, then that package is imported and the ``__main__`` submodule within
35 that package is then executed and the resulting module globals dictionary
38 The optional dictionary argument *init_globals* may be used to pre-populate
39 the module's globals dictionary before the code is executed. The supplied
45 and ``__package__`` are set in the globals dictionary before the module
46 code is executed (Note that this is a minimal set of variables - other
49 ``__name__`` is set to *run_name* if this optional argument is not
50 :const:`None`, to ``mod_name + '.__main__'`` if the named module is a
53 ``__file__`` is set to the name provided by the module loader. If the
54 loader does not make filename information available, this variable is set
57 ``__loader__`` is set to the :pep:`302` module loader used to retrieve the
58 code for the module (This loader may be a wrapper around the standard
61 ``__package__`` is set to *mod_name* if the named module is a package and
64 If the argument *alter_sys* is supplied and evaluates to :const:`True`,
65 then ``sys.argv[0]`` is updated with the value of ``__file__`` and
66 ``sys.modules[__name__]`` is updated with a temporary module object for the
67 module being executed. Both ``sys.argv[0]`` and ``sys.modules[__name__]``
70 Note that this manipulation of :mod:`sys` is not thread-safe. Other threads
71 may see the partially initialised module, as well as the altered list of
72 arguments. It is recommended that the :mod:`sys` module be left alone when
76 The :option:`-m` option offering equivalent functionality from the
87 module: __main__
90 module globals dictionary. As with a script name supplied to the CPython
93 module (e.g. a zipfile containing a top-level ``__main__.py`` file).
95 For a simple script, the specified code is simply executed in a fresh
96 module namespace. For a valid sys.path entry (typically a zipfile or
97 directory), the entry is first added to the beginning of ``sys.path``. The
98 function then looks for and executes a :mod:`__main__` module using the
99 updated path. Note that there is no special protection against invoking
101 there is no such module at the specified location.
103 The optional dictionary argument *init_globals* may be used to pre-populate
104 the module's globals dictionary before the code is executed. The supplied
110 and ``__package__`` are set in the globals dictionary before the module
111 code is executed (Note that this is a minimal set of variables - other
114 ``__name__`` is set to *run_name* if this optional argument is not
117 ``__file__`` is set to the name provided by the module loader. If the
118 loader does not make filename information available, this variable is set
121 ``__loader__`` is set to the :pep:`302` module loader used to retrieve the
122 code for the module (This loader may be a wrapper around the standard
125 ``__package__`` is set to ``__name__.rpartition('.')[0]``.
127 A number of alterations are also made to the :mod:`sys` module. Firstly,
128 ``sys.path`` may be altered as described above. ``sys.argv[0]`` is updated
129 with the value of ``file_path`` and ``sys.modules[__name__]`` is updated
130 with a temporary module object for the module being executed. All
136 allowing the execution of sys.path entries. As the thread-safety
141 :ref:`using-on-interface-options` for equivalent functionality on the
148 :pep:`338` -- Executing modules as scripts
151 :pep:`366` -- Main module explicit relative imports
154 :ref:`using-on-general` - CPython command line details