> -----Original Message----- > From: Dave Angel [mailto:[email protected]] > Sent: Wednesday, July 29, 2009 21:05 > To: Barak, Ron > Cc: '[email protected]' > Subject: Re: Run pyc file without specifying python path ? > > Barak, Ron wrote: > > Hi, > > > > I wanted to make a python byte-code file executable, > expecting to be able to run it without specifying "python" on > the (Linux bash) command line. > > > > So, I wrote the following: > > > > [r...@vmlinux1 python]# cat test_pyc.py #!/usr/bin/env python > > > > print "hello" > > [r...@vmlinux1 python]# > > > > and made its pyc file executable: > > > > [r...@vmlinux1 python]# ls -ls test_pyc.pyc > > 4 -rwxr-xr-x 1 root root 106 Jul 29 14:22 test_pyc.pyc > > [r...@vmlinux1 python]# > > > > So, I see: > > > > [r...@vmlinux1 python]# file test_pyc.py* > > test_pyc.py: a python script text executable > > test_pyc.pyc: python 2.3 byte-compiled > > [r...@vmlinux1 python]# > > > > If I try to do the following, no problem: > > > > [r...@vmlinux1 python]# python test_pyc.pyc hello > > [r...@vmlinux1 python]# > > > > However, the following fails: > > > > [r...@vmlinux1 python]# ./test_pyc.pyc > > -bash: ./test_pyc.pyc: cannot execute binary file > > [r...@vmlinux1 python]# > > > > Is there a way to run a pyc file without specifying the > python path ? > > > > Bye, > > Ron. > > > > > I don't currently run Unix, but I think I know the problem. > > In a text file, the shell examines the first line, and if it > begins #! > it's assumed to point to the executable of an interpreter for > that text file. Presumably the same trick doesn't work for a > .pyc file. > > Why not write a trivial wrapper.py file, don't compile it, > and let that invoke the main code in the .pyc file? > > Then make wrapper.py executable, and you're ready to go. > > DaveA > >
Hi Dave, Your solution sort of defeats my intended purpose (sorry for not divulging my 'hidden agenda'). I wanted my application to "hide" the fact that it's a python script, and look as much as possible like it's a compiled program. The reason I don't just give my user a py file, is that I don't want a cleaver user to change the innards of the script. On the other hand, I don't want to make a compiled (freezed?) version of the application, because it'll grow the resulting file significantly, and I don't have the experience to know how it will run on different Linuxes. Bye, Ron. -- http://mail.python.org/mailman/listinfo/python-list
