avoiding long paths to interpreter

Erik Max Francis max at alcyone.com
Thu Jan 9 03:07:05 CET 2003


Mike Meyer wrote:

> The recommended approach is to use:
> 
> #!/usr/bin/env python
> 
> which will find python no matter where it is if it's in the users
> path.

To be pedantic, you've no guarantee that env will be in /usr/bin
(although granted that it will be the vast majority of the time).  The
real wart here is that if you have multiple interpreters installed, say,
in /usr/bin and /usr/local/bin, then /usr/bin/env picks the python
that's associated with your PATH.  This can lead to bad surprises if the
script runs in an interactive shell vs., say, a CGI script or a cron
job, where the PATHs are almost certain to be far more restrictive,
particularly if you have a highly customized interactive shell.

Unfortunately, there's truly no magic bullet here when the script itself
depends on a certain version of Python.

-- 
 Erik Max Francis / max at alcyone.com / http://www.alcyone.com/max/
 __ San Jose, CA, USA / 37 20 N 121 53 W / &tSftDotIotE
/  \ Strange is our situation here upon earth.
\__/ Albert Einstein
    ZOE / http://www.alcyone.com/pyos/zoe/
 A simple Python OpenGL rendering engine.




More information about the Python-list mailing list