L
LubanWorks
Hi all,
I installed two python 2.7.3 into my home directory
one is for Linux: /home/luban/*Linux*/Python/2.7.3
another is for Solaris: /home/luban/*SunOS*/Python/2.7.3
then I create a wrapper named "python" in /home/luban/bin to call the
different python when I am working on different systems.
[luban@lunbanworks 1] ~ > cat /home/luban/bin/python
#!/bin/sh
CMD=`basename $0`
OS=`uname -s`
CMD_PATH="/home/luban/$OS/Python/2.7.3/bin"
if [ -x "${CMD_PATH}/${CMD}" ];then
export PATH="${CMD_PATH}:${PATH}"
exec ${CMD_PATH}/${CMD} ${1+"$@"}
else
echo "${CMD} is not available for ${OS}" 1>&2
exit 1
fi
[luban@lunbanworks 2] ls -l /home/luban/bin/python
-rwxrwxr-x 1 luban lunban 221 Apr 5 19:11 python*
I use below script to test the wrapper /home/luban/bin/python
[luban@lunbanworks 3]* ~ > *cat myscript.py
#!/home/luban/bin/python
myname="lunban"
print "myname is %s" % myname
[luban@lunbanworks 4]* *chmod +x myscript.py
I want to use ./ run myscript.py
[luban@lunbanworks 5] ~ >./myscript.py
myname=luban: Command not found.
lpr: Unable to access "myname" - No such file or directory
use /home/luban/bin/python myscript.py can work:*
*[luban@lunbanworks 5] ~ > */home/luban/bin/python myscript.py*
myname is luban
After I *change the shebang line to
#!/home/luban/Linux/Python/2.7.3/bin/python, use ./ can execute the script.
*
[luban@lunbanworks 6] *~ >*cat myscript.py
#!/home/luban/Linux/Python/2.7.3/bin/python
myname="lunban"
print "myname is %s" % myname
[luban@lunbanworks 7] *~ >*./myscript.py
myname is luban
My question is:
Why when I use #!/home/luban/Linux/Python/2.7.3/bin/python at the
beginning of myscript.py, *./*myscript.py can work,
but if I use the wrapper #!/home/luban/bin/python in my python script, use *
../* to run the script, it cannot not work?
I had many scripts used #!/home/luban/bin/python when I only installed
python under #!/home/luban/ for Linux, they can run with ./, I don't want
to change them,
so, how to let ./ run the python script If I want to *KEEP* wrapper
#!/home/luban/bin/python as the shebang line?
Best Regards,
Luban
I installed two python 2.7.3 into my home directory
one is for Linux: /home/luban/*Linux*/Python/2.7.3
another is for Solaris: /home/luban/*SunOS*/Python/2.7.3
then I create a wrapper named "python" in /home/luban/bin to call the
different python when I am working on different systems.
[luban@lunbanworks 1] ~ > cat /home/luban/bin/python
#!/bin/sh
CMD=`basename $0`
OS=`uname -s`
CMD_PATH="/home/luban/$OS/Python/2.7.3/bin"
if [ -x "${CMD_PATH}/${CMD}" ];then
export PATH="${CMD_PATH}:${PATH}"
exec ${CMD_PATH}/${CMD} ${1+"$@"}
else
echo "${CMD} is not available for ${OS}" 1>&2
exit 1
fi
[luban@lunbanworks 2] ls -l /home/luban/bin/python
-rwxrwxr-x 1 luban lunban 221 Apr 5 19:11 python*
I use below script to test the wrapper /home/luban/bin/python
[luban@lunbanworks 3]* ~ > *cat myscript.py
#!/home/luban/bin/python
myname="lunban"
print "myname is %s" % myname
[luban@lunbanworks 4]* *chmod +x myscript.py
I want to use ./ run myscript.py
[luban@lunbanworks 5] ~ >./myscript.py
myname=luban: Command not found.
lpr: Unable to access "myname" - No such file or directory
use /home/luban/bin/python myscript.py can work:*
*[luban@lunbanworks 5] ~ > */home/luban/bin/python myscript.py*
myname is luban
After I *change the shebang line to
#!/home/luban/Linux/Python/2.7.3/bin/python, use ./ can execute the script.
*
[luban@lunbanworks 6] *~ >*cat myscript.py
#!/home/luban/Linux/Python/2.7.3/bin/python
myname="lunban"
print "myname is %s" % myname
[luban@lunbanworks 7] *~ >*./myscript.py
myname is luban
My question is:
Why when I use #!/home/luban/Linux/Python/2.7.3/bin/python at the
beginning of myscript.py, *./*myscript.py can work,
but if I use the wrapper #!/home/luban/bin/python in my python script, use *
../* to run the script, it cannot not work?
I had many scripts used #!/home/luban/bin/python when I only installed
python under #!/home/luban/ for Linux, they can run with ./, I don't want
to change them,
so, how to let ./ run the python script If I want to *KEEP* wrapper
#!/home/luban/bin/python as the shebang line?
Best Regards,
Luban