Jason Willis wrote:
hi everyone,
sorry for the rather boring question but i'm having serious issues
getting my programs to run from the command line without having to type
"python" in-front of them. I've tried a lot of different variations on
the #!/usr/bin/ etc. line and have come up with the following every time:
*[r...@localhost moonshinerat]# mycode.py
bash: mycode.py: command not found
[r...@localhost moonshinerat]# mycode
bash: mycode: command not found
[r...@localhost moonshinerat]#
I've chmod'ed the program and everything but i still get command not
found from the shell. The only thing that does work is ./mycode.py but
from what i understand that's been built into linux itself to work that
way...
please someone let me know what i'm doing wrong here and possibly help??
No, you're not doing anything wrong. It is just the way the hashbang
line and PATH environment variable works.
The line
$ ./script.py
will find an executable file named script.py in the *current working
directory* (i.e. "."); and pass it the the interpreter defined in the
hashbang line.
The line
$ script.py
will find an executable file named script.py in the PATH environment
variable and pass it to the interpreter defined in the hashbang line.
In both cases, the hashbang line is used to find the interpreter.
As others have said, it is possible to add "." to PATH to make Linux
works like Windows (or rather bash to work like cmd), but this is not a
good idea for security since it makes it trivial for hacker to trick
users (esp. root) to run a script named similar to a system executable.
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor