[Python-Dev] Change to sys.path[0] for Python 2.3

James C. Ahlstrom jim@interet.com
Wed, 21 Nov 2001 10:23:57 -0500


I have been working on import.c and thinking about
imports generally.  Currently, the directory of the
Python script is inserted into sys.path[0].  For example,
"python /A/B/myscript.py" creates sys.path[0] = "/A/B", and
"python myscript.py" creates sys.path[0] = "".  But there
are three problems.

This insertion occurs after a number of imports have already
occurred.  Specifically, it occurs after the import of site,
os, and sitecustomize.  This is confusing.  It is clear that
sys.path should not change unless the user changes it.

If no path component is given, the zero length string is
inserted.  But if the current working directory later
changes, this is no longer valid.  If we want the directory
of the script to be sys.path[0], then an absolute path should
be inserted.

If a command is entered using "-c", I don't think any insertion
to sys.path should be made, as there is no indicated directory.
Alternatively, the absolute path getcwd() should be inserted.

If everyone agrees, I will create a patch.

Jim Ahlstrom