[Python-Dev] [PATCH] Handling of scripts / substitution of python executable path

"Martin v. Löwis" martin at v.loewis.de
Fri Feb 23 22:33:01 CET 2007


Hans Meine schrieb:
> For a long time, I have been annoyed by distutils behavior concerning 
> "scripts":  I always put 
>   #!/usr/bin/env python
> into the first line in order to let the incredibly useful "env" program start 
> the right python version.
> 
> I know that it is quite evil to hardcode /usr/bin/python 

No. The current distutils behaviour is very deliberate, intentional, and
has undergone a number of iterations to arrive at this point.

While it is true that you would normally use /usr/bin/env for scripts
that you *distribute*, it's not true that you should use that for
scripts that you *install*. Instead, the script that you install will
likely depend on the specific installation of Python: the script will
likely use modules that are only installed in a single location.
So the installed scripts need to hard-code the path to the interpreter,
or else they break if somebody changes the path and suddenly picks
up a different Python.

Notice that it may not just be that the Python is a different version
(on which the script won't work); it may also be that the it won't
work on a different installation of the *same* Python version,
since it requires libraries not available in this other installation.

So the default must stay as it is.

Regards,
Martin


More information about the Python-Dev mailing list