A little known feature of Python: you can wrap your Python application in a zip file and distribute it as a single file. The trick to make it runnable is to put your main function inside a file called __main__.py inside the zip file. Here's a basic example:
steve@runes:~$ cat __main__.py print("NOBODY expects the Spanish Inquisition!!!") steve@runes:~$ zip appl __main__.py adding: __main__.py (stored 0%) steve@runes:~$ rm __main__.py steve@runes:~$ python appl.zip NOBODY expects the Spanish Inquisition!!! On Linux, you can even hack the zip file to include a shebang line! steve@runes:~$ cat appl #!/usr/bin/env python # This is a Python application stored in a ZIP archive. steve@runes:~$ cat appl.zip >> appl steve@runes:~$ chmod u+x appl steve@runes:~$ ./appl NOBODY expects the Spanish Inquisition!!! It's not quite self-contained, as you still need to have Python installed, but otherwise it's a good way to distribute a Python application as a single file that users can just copy and run. -- Steven -- https://mail.python.org/mailman/listinfo/python-list