Emad Nawfal (عماد نوفل) wrote:
Hi Tutors,
#! /usr/bin/env python
print "Hello Tutors"
I have this script saved as hello.py. Why can I execute it, but not
the compiled version? or am I doing something wrong? Just curious.
Any help appreciated.
There are 2 issues here.
1 - The shell inspects the first line of the file (#! /usr/bin/env
python) to find the program to run
The compiled file does not have this first line.
2 - The python interpreter expects a script not a compiled program.
So even if you got the interpreter to run it would try to treat
the file as a script and bomb anyway.
However when you import hello then it looks first for hello.pyc, and
runs that. If hello.pyc is missing or older than hello.py it will
compile hello.py and then run hello.pyc.
For example :
e...@emad-laptop:~/Desktop/Programming/Haskell$ chmod +x hello.py
e...@emad-laptop:~/Desktop/Programming/Haskell$ ./hello.py
Hello Tutors
Now I compile it in Python:
>>> import py_compile
>>> py_compile.compile("hello.py")
>>>
e...@emad-laptop:~/Desktop/Programming/Haskell$ chmod +x hello.pyc
e...@emad-laptop:~/Desktop/Programming/Haskell$ ./hello.pyc
: command not found: �
./hello.pyc: line 2: syntax error near unexpected token `('
./hello.pyc: line 2: `�k...@s dGHdS(s
Hello
TutorsN((((hello.py<module>s'
e...@emad-laptop:~/Desktop/Programming/Haskell$
--
لا أعرف مظلوما تواطأ الناس علي هضمه ولا زهدوا في إنصافه
كالحقيقة.....محمد الغزالي
"No victim has ever been more repressed and alienated than the truth"
Emad Soliman Nawfal
Indiana University, Bloomington
--------------------------------------------------------
------------------------------------------------------------------------
_______________________________________________
Tutor maillist - Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor
--
Bob Gailer
Chapel Hill NC
919-636-4239
_______________________________________________
Tutor maillist - Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor