[Python-ideas] sys.path is a hack - bringing it back under control

Simon Sapin simon.sapin at kozea.fr
Mon Feb 20 11:06:34 CET 2012

Le 20/02/2012 10:47, anatoly techtonik a écrit :
> I often find this in my scripts/projects, that I run directly from
> checkout:
> DEVPATH =os.path.dirname(os.path.abspath(__file__))
> sys.path.insert(0,DEVPATH)


You shouldn’t have to do that if you’re running 'python something.py'

> 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.


The trick is to place the script in the directory that you want in the 
path, ie. next to top-level packages. But from your code above this 
seems to be the case already...

Simon Sapin

More information about the Python-ideas mailing list