How to execute python script from console without writing full path?
Solution 1
Set executable permissions for python scripts by "chmod +x *"
Now you have two options:
- Add your scripts directory to PATH env variable, or
- Make symbolic links to your scripts one by one (or write another script to do the same) in
/usr/local/bin
directory.
Example:
[mzed@node02 test]$ vim printme.py
Contents of file:
#!/usr/bin/python
print "This is cool!"
-
[mzed@node02 test]$ mv printme.py printme
[mzed@node02 test]$ chmod +x printme
[mzed@node02 ~]$ cd /usr/local/bin/
[mzed@node02 bin]$ sudo ln -s ~/test/printme .
[mzed@node02 bin]$ ls
deskzilla grails grails-debug printme startGrails
[mzed@node02 bin]$ cd
[mzed@node02 ~]$ printme
This is cool!
[mzed@node02 ~]$
I hope this will help you.
Solution 2
Okay, maybe I'm just older school...
In /usr/bin add shell scripts with the #!/bin/bash header and no .sh extension. Then in those scripts just run python absolutepath.
Why I think it's better than the other answers:
Doesn't require chmod-ing your scripts to make them executable.
Doesn't require renaming your scripts.
Related videos on Youtube
grerdas
Updated on September 18, 2022Comments
-
grerdas over 1 year
I have a few python scripts on /usr/share/scripts/ that I use often, and I want to be able to execute them by just writing the name and not the full path, how could I do this?
echo $PATH shows me:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer
So I tried writing on the terminal:
PATH="/usr/share/scripts/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer" export
No errors shown and echo $PATH now shows my new scripts path, but when I run scriptName I get command not found.
What am i doing wrong?
-
Ignacio Vazquez-Abrams about 13 yearsHow did you do it right before?
-
grerdas about 13 yearsI didn't do it before.
-
grerdas about 13 years@Ignacio Vazquez-Abrams : Oh I didn't understand your question sorry, I ran them like "/usr/share/scripts/scriptName.py args"
-
-
Iulian Onofrei about 9 yearsAny possibility to make a version for Windows? (I know this is a Linux question)
-
juanitogan over 8 yearsDon't forget the args.