Stupid question: Making scripts python-scripts

Bill Mill bill.mill at gmail.com
Thu Jul 21 11:12:24 EDT 2005


On 7/21/05, Jan Danielsson <jan.danielsson at gmail.com> wrote:
> Hello all,
> 
>    How do I make a python script actually a _python_ in unix:ish
> environments?
> 
> I know about adding:
> #!/bin/sh
> 
>    ..as the first row in a shell script, but when I installed python on
> a NetBSD system, I didn't get a "python" executable; only a "python2.4"
> executable.
> 
>    Adding "#!/usr/pkg/bin/python2.4" as the first row in the script
> would probably work, but that would be too specific for the system I'm
> using, imho.
> 
>    I saw someone using "#!/usr/bin/env python", but that failed on the
> system I'm using, so I assume that's something specific too (or is the
> installation broken?).

The env program [1], which usually exists at least on a linux system,
executes the program given as its argument. Thus, "/usr/bin/env
python" tries to executes python, which bash will then use to run the
python script. As long as env exists, and python is somewhere in the
PATH, this is a fairly portable way to run python scripts.

Does BSD really not come with the env program? I bet there's an
equivalent you could symlink to it. Unfortunately, I've never BSDed,
so I can't help you find it. To get a workable subset of the normal
env functionality, you could try (assuming you use bash):

/home/llimllib $ echo "$@" > /usr/bin/env
/home/llimllib $ chmod a+x /usr/bin/env

Peace
Bill Mill
bill.mill at gmail.com

[1]: http://rootr.net/man/man/env/1



More information about the Python-list mailing list