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?). 8 1915
On your system, do:
which python2.4
That will give you the full path to the python2.4 binary (let's call it
"path/to/py24").
Then add:
#!/path/to/py24
....to the top of your script.
And make sure the file is chmod'd +x
oops... I missed the "too specific comment." Sorry =)
You could also set your "python" environment variable on the system...
set it to be "/path/to/python2.4". Then use the "#!/usr/bin/env
python" trick. Just make sure that env is working for you, first.
On 7/21/05, Bill Mill <bi*******@gmail.com> wrote: On 7/21/05, Jan Danielsson <ja************@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
ahhh, that should be:
/home/llimllib $ echo "\$@" > /usr/bin/env
otherwise bash tries to substitute into the string. Sorry bout that.
Peace
Bill Mill
bill.mill at gmail.com
On 7/21/05, Jan Danielsson <ja************@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
Jan Danielsson 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.
What about:
ln /usr/pkg/bin/python2.4 /usr/bin/python
then
#!/usr/bin/python
in your script, and you should be done (dont forget to chmod +x your
script of course)
Or I'm I missing something specific to xxxBSD ?
I saw someone using "#!/usr/bin/env python", but that failed on the system I'm using,
How do you execute the python interpreter ? If you need to type
"python2.4" (not just "python"), then obviously 'usr/bin/env python'
syntax shouldn't work either.
My 2 cents
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'o****@xiludom.gro'.split('@')])"
Jan Danielsson 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?).
You could
a) create a symlink to your python executable in a well known location, e.g.
ln -s /usr/pkg/bin/python2.4 /usr/bin/python
And use either "#!/usr/bin/python" (which should work on most UNIXoid
systems with python installed) or "#!/usr/bin/env python"
b) use the absolute path /usr/pkg/bin/python2.4 for your script (in order to
have it running on your system) and use distutils to create a setup.py
script for distribution. IIRC setup.py will recognize the shebang of your
scripts and replace it with the proper path to python of the target system
during installation.
--
Benjamin Niemann
Email: pink at odahoda dot de
WWW: http://www.odahoda.de/
Bill Mill <bi*******@gmail.com> writes: On 7/21/05, Jan Danielsson <ja************@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.
env doesn't invoke the shell, it uses execvp, which "duplicates the
actions of the shell in searching for an executable." Further, he's on
NetBSD - he may not have bash installed. My FreeBSD box certainly
doesn't.
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):
NetBSD comes with an env. His env is failing because he doesn't have a
"python" command installed.
This appears to be wart(?) in the NetBSD packaging system. To allow
multiple versions of FreeBSD to coexist, it doesn't install a "python"
command at all, but instead leaves the versioned one around.
Two solutions: have your scripts use #!/usr/pkg/bin/python2.4. That
way, when you install a new python, they will keep using the old
one. That will insure they won't break when you upgrade.
However, such breakage is pretty rare in practice. I'd pick a favorite
bin directory and symlink from python there to /usr/pkg/bin/python2.4,
then use "#!/usr/bin/env python" in your scripts.
While I'm on the topic, I think I'll share my favorite cool trick.
#!/usr/opt/bin/mypythonscript
Doesn't work because Unix won't let you use an interpreted script as
the interpreter (is this true for all variants?). However,
#!/usr/bin/env mypythonscript
works like a charm.
<mike
--
Mike Meyer <mw*@mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information. This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: UJ |
last post by:
What's the easiest way (without setting up a style sheet) to set the font
for an area of text. I need to be able to specify the exact font and font
size - not the 1-7 numbers IE uses. I want to be...
|
by: Steven Watanabe |
last post by:
I know that the standard idioms for clearing a list are:
(1) mylist =
(2) del mylist
I guess I'm not in the "slicing frame of mind", as someone put it, but
can someone explain what the...
|
by: sparks |
last post by:
We get more and more data done in excel and then they want it imported
into access.
The data is just stupid....values of 1 to 5 we get a lot of 0's ok
that alright but 1-jan ?
we get colums...
|
by: K8CPA |
last post by:
Hi Guys,
I've got a question from a stupid question from a clueless computer
operator's standpoint.
I use Windows XP. SP2, and I've got all these neat little programs.
What language do they...
|
by: M.N.A.Smadi |
last post by:
hi guys;
sorry for sending a perl question here, but python guy "HAD TO" look at
perl code;
how can i split a string that contains white spaces and '_'
any clue?
thanks
|
by: John Salerno |
last post by:
I'm a little confused. Why doesn't s evaluate to True in the first part,
but it does in the second? Is the first statement something different?
False
print 'hi'
hi
Thanks.
|
by: Leslie Kis-Adam |
last post by:
Hi everyone!
Can anyone explain me this program?
I'm getting really confused.
thx in advance.
Laszlo Kis-Adam
<dfighter@freemail.hu>
"
|
by: Stef Mientki |
last post by:
Does anyone know the equivalent of the MatLab "diff" function.
The "diff" functions calculates the difference between 2 succeeding
elements of an array.
I need to detect (fast) the falling edge of...
|
by: hide1713 |
last post by:
Hi everyone
We are making a disk less workstation environment which support
python.We use PXE DHCP TFTP to boot up disk less system.There are
three choices as i know to set up a python environment...
|
by: catalinfest |
last post by:
I see on this link "# Python is Stupid"
http://schlake.livejournal.com/809567.html
Code is
#!/usr/bin/env python
for flour in range( 50, 1000 + 1, 5): # Python is Stupid
print '%.2f %.2f %.2f'...
|
by: Kemmylinns12 |
last post by:
Blockchain technology has emerged as a transformative force in the business world, offering unprecedented opportunities for innovation and efficiency. While initially associated with cryptocurrencies...
|
by: Naresh1 |
last post by:
What is WebLogic Admin Training?
WebLogic Admin Training is a specialized program designed to equip individuals with the skills and knowledge required to effectively administer and manage Oracle...
|
by: WisdomUfot |
last post by:
It's an interesting question you've got about how Gmail hides the HTTP referrer when a link in an email is clicked. While I don't have the specific technical details, Gmail likely implements measures...
|
by: Oralloy |
last post by:
Hello Folks,
I am trying to hook up a CPU which I designed using SystemC to I/O pins on an FPGA.
My problem (spelled failure) is with the synthesis of my design into a bitstream, not the C++...
|
by: Carina712 |
last post by:
Setting background colors for Excel documents can help to improve the visual appeal of the document and make it easier to read and understand. Background colors can be used to highlight important...
|
by: BLUEPANDA |
last post by:
At BluePanda Dev, we're passionate about building high-quality software and sharing our knowledge with the community. That's why we've created a SaaS starter kit that's not only easy to use but also...
|
by: Rahul1995seven |
last post by:
Introduction:
In the realm of programming languages, Python has emerged as a powerhouse. With its simplicity, versatility, and robustness, Python has gained popularity among beginners and experts...
|
by: Ricardo de Mila |
last post by:
Dear people, good afternoon...
I have a form in msAccess with lots of controls and a specific routine must be triggered if the mouse_down event happens in any control.
Than I need to discover what...
|
by: jack2019x |
last post by:
hello, Is there code or static lib for hook swapchain present?
I wanna hook dxgi swapchain present for dx11 and dx9.
| |