> [Kevin Altis brought this to my attention, so I'm cc-ing him] > > The python docs state on sys.path: > > As initialized upon program startup, the first item of this list, > path[0], is the directory containing the script that was used to > invoke the Python interpreter. If the script directory is not > available (e.g. if the interpreter is invoked interactively or if > the script is read from standard input), path[0] is the empty > string, which directs Python to search modules in the current > directory first. > > This is at least misleading. > > It appears that for certain ways Python is started, the first item > on sys.path is a relative path name, or even empty, even if a script > was specified, and the path would have been available. What's wrong with a relative pathname? If you invoke the script using a relative pathname, why shouldn't that be what you get? The docs don't say that it's the absolute pathname, so I don't think you can claim that the docs are misleading here. > This leads to problems if the script changes the working directory. > Not always because the programmer explicitely called os.chdir(), > also 'behind the scenes' when a GUI is used. Why would a GUI change the current directory? That seems pretty broken. > Shouldn't Python convert sys.path to absolute path names, to avoid > these problems? site.py converts sys.path entries to absolute pathnames, *except* for the path entry for to the script directory, because that is added to sys.path *after* site.py is run. I'm disinclined to do anything about this, except perhaps warn that the script directory may be given as a relative path. --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4