[Tutor] "#!/usr/bin/env python" vs "#!/usr/local/bin/python"

Senthil_OR at Dell.com Senthil_OR at Dell.com
Thu Jun 14 16:35:01 CEST 2007

Okay, I guess, people are missing points here. 
When do you
You are specifying the location to the python executable in your machine, that rest of the script needs to be interpreted with.
You are pointing to python is located at /usr/local/bin/python
Consider the possiblities that in a different machine, python may be installed at /usr/bin/python or /bin/python in those cases, the above #! will fail.
For those cases, we get to call the env executable with argument which will determine the arguments path by searching in the $PATH and use it correctly.
#/usr/bin/env python
Will figure out the correct location of python ( /usr/bin/python or /bin/python from $PATH) and make that as the interpreter for rest of the script.
- ( env is almost always located in /usr/bin/ so one need not worry what is env is not present at /usr/bin)
Hope this helps.

The price of seeking to force our beliefs on others is that someday they might force their beliefs on us. -- Mario Cuomo 


From: tutor-bounces at python.org [mailto:tutor-bounces at python.org] On Behalf Of David Duncan
Sent: Thursday, June 14, 2007 19:44
To: tutor at python.org
Subject: Re: [Tutor] "#!/usr/bin/env python" vs "#!/usr/local/bin/python"

On 6/14/07, Ezra Taylor <ezra.taylor at gmail.com> wrote: 

	I think Emilia means what's the difference.  From what little I know, #!/usr/bin/env python will choose the first python that's in your path.  Were as the second option, you explicitly choose which instance of python you want.  I'm using using python from Activestate.  So my shebang is to the Activestate directory for python.  If I'm wrong, please correct. 
	On 6/14/07, emilia12 at mail.bg <emilia12 at mail.bg> wrote: 

		hi list,
		how to choose between "#!/usr/bin/env python" and
		"#!/usr/local/bin/python" in the beginning of the script ? 
		SCENA - Ĺäčíńňâĺíîňî ÁĹÇĎËŔŇÍÎ ńďčńŕíčĺ çŕ ěîáčëíč ęîěóíčęŕöčč č ňĺőíîëîăčč.
		Tutor maillist  -  Tutor at python.org

	Ezra Taylor 
	Tutor maillist  -  Tutor at python.org

The real difference here is that by using the "env"  command, you have the option to input many different settings preferences before calling the python of your choice.  The statement above, is a very simple choice of the python based upon the current environment, but it could be augmented very easily. 

I suggest that you check out the man page for the command "env".  

David Duncan

Registered Linux User #279425
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20070614/fd34f72c/attachment.htm 

More information about the Tutor mailing list