Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
Cpython
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
sip
Cpython
Commits
f0229aa5
Commit
f0229aa5
authored
Jan 19, 2012
by
Sandro Tosi
Browse files
Options
Downloads
Patches
Plain Diff
Issue #11948: clarify modules search path
parent
972cfb91
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
Doc/tutorial/modules.rst
+16
-18
16 additions, 18 deletions
Doc/tutorial/modules.rst
with
16 additions
and
18 deletions
Doc/tutorial/modules.rst
+
16
−
18
View file @
f0229aa5
...
...
@@ -159,24 +159,22 @@ The Module Search Path
.. index:: triple: module; search; path
When a module named :mod:`spam` is imported, the interpreter searches for a
file named :file:`spam.py` in the directory containing the input script and
then in the list of directories specified by the environment variable
:envvar:`PYTHONPATH`. This has the same syntax as the shell variable
:envvar:`PATH`, that is, a list of directory names. When :envvar:`PYTHONPATH`
is not set, or when the file is not found there, the search continues in an
installation-dependent default path; on Unix, this is usually
:file:`.:/usr/local/lib/python`.
Actually, modules are searched in the list of directories given by the variable
``sys.path`` which is initialized from the directory containing the input script
(or the current directory), :envvar:`PYTHONPATH` and the installation- dependent
default. This allows Python programs that know what they're doing to modify or
replace the module search path. Note that because the directory containing the
script being run is on the search path, it is important that the script not have
the same name as a standard module, or Python will attempt to load the script as
a module when that module is imported. This will generally be an error. See
section :ref:`tut-standardmodules` for more information.
When a module named :mod:`spam` is imported, the interpreter first searches for
a built-in module with that name. If not found, it then searches for a file
named :file:`spam.py` in a list of directories given by the variable
:data:`sys.path`. :data:`sys.path` is initialized from these locations:
* the directory containing the input script (or the current directory).
* :envvar:`PYTHONPATH` (a list of directory names, with the same syntax as the
shell variable :envvar:`PATH`).
* the installation-dependent default.
After initialization, Python programs can modify :data:`sys.path`. The
directory containing the script being run is placed at the beginning of the
search path, ahead of the standard library path. This means that scripts in that
directory will be loaded instead of modules of the same name in the library
directory. This is an error unless the replacement is intended. See section
:ref:`tut-standardmodules` for more information.
.. %
Do we need stuff on zip files etc. ? DUBOIS
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment