Issue #6386: When executing a script that's a symlink, the directory

where the symlink resolves to is added to sys.path, not the directory
containing the symlink itself.

Thanks to Sanko Resic for an initial attempt at the patch.
This commit is contained in:
Brett Cannon 2014-02-06 09:22:51 -05:00
parent 94e44a935b
commit f811bbfe6c
2 changed files with 15 additions and 2 deletions

View File

@ -165,10 +165,16 @@ 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).
* The directory containing the input script (or the current directory when no
file is specified).
* :envvar:`PYTHONPATH` (a list of directory names, with the same syntax as the
shell variable :envvar:`PATH`).
* the installation-dependent default.
* The installation-dependent default.
.. note::
On file systems which support symlinks, the directory containing the input
script is calculated after the symlink is followed. In other words the
directory containing the symlink is **not** added to the module search path.
After initialization, Python programs can modify :data:`sys.path`. The
directory containing the script being run is placed at the beginning of the

View File

@ -163,6 +163,13 @@ Build
- Issue #20465: Update SQLite shipped with OS X installer to 3.8.3.
Documentation
-------------
- Issue #6386: Clarify in the tutorial that specifying a symlink to execute
means the directory containing the executed script and not the symlink is
added to sys.path.
What's New in Python 3.4.0 Beta 3?
==================================