Re: Executable standalone *.pyc after inserting #!/usr/bin/python or other options

2010-01-15 Thread schmeii
On Jan 14, 10:55 pm, epsilon cesm...@gmail.com wrote:
 All:

 I've been playing with Lua and found something really cool that I'm
 unable to do in Python. With Lua, a script can be compiled to byte
 code using luac and by adding #!/usr/bin/lua at the top of the
 binary, the byte code becomes a single file executable. After I found
 this trick, I ran back to Python to give it a try.  Well...  it
 didn't work. Is this possible?

You can't add a string on top of a pyc file but you can add one in a
zipped file. For an example, see http://www.noah.org/wiki/Python_zip_exe

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Executable standalone *.pyc after inserting #!/usr/bin/python or other options

2010-01-15 Thread epsilon
On Jan 15, 8:32 am, schmeii maxischm...@gmail.com wrote:
 On Jan 14, 10:55 pm, epsilon cesm...@gmail.com wrote:

  All:

  I've been playing with Lua and found something really cool that I'm
  unable to do in Python. With Lua, a script can be compiled to byte
  code using luac and by adding #!/usr/bin/lua at the top of the
  binary, the byte code becomes a single file executable. After I found
  this trick, I ran back to Python to give it a try.  Well...  it
  didn't work. Is this possible?

 You can't add a string on top of a pyc file but you can add one in a
 zipped file. For an example, seehttp://www.noah.org/wiki/Python_zip_exe


All:

Thanks again and I'm looking at all the options for different
operating system

Christopher
-- 
http://mail.python.org/mailman/listinfo/python-list


Executable standalone *.pyc after inserting #!/usr/bin/python or other options

2010-01-14 Thread epsilon
All:

I've been playing with Lua and found something really cool that I'm
unable to do in Python. With Lua, a script can be compiled to byte
code using luac and by adding #!/usr/bin/lua at the top of the
binary, the byte code becomes a single file executable. After I found
this trick, I ran back to Python to give it a try.  Well...  it
didn't work. Is this possible?  There are tools which insert python
and related modules inside the byte code, but this is not the
requirement for this situation. The required solution is to insert #!/
usr/bin/python (or some string) at the top of a *.pyc byte code file
and run it as standalone executable.  I'm excited about the
possibility and interested in hearing your thoughts.

Thank you,
Christopher Smiga
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Executable standalone *.pyc after inserting #!/usr/bin/python or other options

2010-01-14 Thread Martin v. Loewis
 I've been playing with Lua and found something really cool that I'm
 unable to do in Python. With Lua, a script can be compiled to byte
 code using luac and by adding #!/usr/bin/lua at the top of the
 binary, the byte code becomes a single file executable. After I found
 this trick, I ran back to Python to give it a try.  Well...  it
 didn't work. Is this possible?

In Python, a different approach will work, depending on the operating
system.

E.g. on Linux, you can use binfmt_misc to make executables out of pyc
code. Run

import imp,sys,string
magic = string.join([\\x%.2x % ord(c) for c in imp.get_magic()],)
reg = ':pyc:M::%s::%s:' % (magic, sys.executable)
open(/proc/sys/fs/binfmt_misc/register,wb).write(reg)

once on your Linux system (or, rather, at boot time), and all pyc
files become executable (if the x bit is set).

In Debian, installing the binfmt-support package will do that for
you.

Do ls /proc/sys/fs/binfmt_misc/ to see what binary types are
already supported on your system.

HTH,
Martin

P.S. The approach you present for Lua indeed does not work for
Python.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Executable standalone *.pyc after inserting #!/usr/bin/python or other options

2010-01-14 Thread epsilon
On Jan 14, 5:33 pm, Martin v. Loewis mar...@v.loewis.de wrote:
  I've been playing with Lua and found something really cool that I'm
  unable to do in Python. With Lua, a script can be compiled to byte
  code using luac and by adding #!/usr/bin/lua at the top of the
  binary, the byte code becomes a single file executable. After I found
  this trick, I ran back to Python to give it a try.  Well...  it
  didn't work. Is this possible?

 In Python, a different approach will work, depending on the operating
 system.

 E.g. on Linux, you can use binfmt_misc to make executables out of pyc
 code. Run

 import imp,sys,string
 magic = string.join([\\x%.2x % ord(c) for c in imp.get_magic()],)
 reg = ':pyc:M::%s::%s:' % (magic, sys.executable)
 open(/proc/sys/fs/binfmt_misc/register,wb).write(reg)

 once on your Linux system (or, rather, at boot time), and all pyc
 files become executable (if the x bit is set).

 In Debian, installing the binfmt-support package will do that for
 you.

 Do ls /proc/sys/fs/binfmt_misc/ to see what binary types are
 already supported on your system.

 HTH,
 Martin

 P.S. The approach you present for Lua indeed does not work for
 Python.


Martin,

This works great! Do you or anyone else have information on how to do
the same thing for Windows and/or Solaris.

Thank you again,
Christopher
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Executable standalone *.pyc after inserting #!/usr/bin/python or other options

2010-01-14 Thread Martin v. Loewis
 This works great! Do you or anyone else have information on how to do
 the same thing for Windows and/or Solaris.

On Windows, just associate the .pyc extension with Python - the standard
installation will already do that.

On Solaris, I don't think something like this is supported.

Regards,
Martin
-- 
http://mail.python.org/mailman/listinfo/python-list