Anyone know this? I've never been able to find an answer.
views:
769answers:
5It finds 'python' also in /usr/local/bin, ~/bin, /opt/bin, ... or wherever it may hide.
You may find this post to be of interest: http://mail.python.org/pipermail/python-list/2008-May/661514.html
This may be a better explanation: http://mail.python.org/pipermail/tutor/2007-June/054816.html
If you're prone to installing python in various and interesting places on your PATH (as in $PATH
in typical Unix shells, %PATH
on typical Windows ones), using /usr/bin/env
will accomodate your whim (well, in Unix-like environments at least) while going directly to /usr/bin/python
won't. But losing control of what version of Python your scripts run under is no unalloyed bargain... if you look at my code you're more likely to see it start with, e.g., #!/usr/local/bin/python2.5
rather than with an open and accepting #!/usr/bin/env python
-- assuming the script is important I like to ensure it's run with the specific version I have tested and developed it with, NOT a semi-random one;-).
it finds the python executable in your environment and uses that. it's more portable because python may not always be in /usr/bin/python. env is always located in /usr/bin.