[Python-checkins] cpython: Issue #6386: When executing a script that's a symlink, the directory

brett.cannon python-checkins at python.org
Thu Feb 6 15:23:03 CET 2014


http://hg.python.org/cpython/rev/47c31e7d3779
changeset:   88992:47c31e7d3779
user:        Brett Cannon <brett at python.org>
date:        Thu Feb 06 09:22:51 2014 -0500
summary:
  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.

files:
  Doc/tutorial/modules.rst |  10 ++++++++--
  Misc/NEWS                |   7 +++++++
  2 files changed, 15 insertions(+), 2 deletions(-)


diff --git a/Doc/tutorial/modules.rst b/Doc/tutorial/modules.rst
--- a/Doc/tutorial/modules.rst
+++ b/Doc/tutorial/modules.rst
@@ -165,10 +165,16 @@
 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
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -163,6 +163,13 @@
 
 - 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?
 ==================================

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list