[Tutor] (no subject)

Andreas Kostyrka andreas at kostyrka.org
Sat Nov 25 11:44:04 CET 2006


* Luke Paireepinart <rabidpoobear at gmail.com> [061125 07:11]:
> Not the batch script, obviously, but the rest of your program.
> Although I'm prettty sure most modern linux distros come with Python 
> already installed, so you don't need to be concerned about those linux folk.
> Except, I find that it's more trouble for linuxers to get packages for

I beg to differ here. Most Python packages (well, there are some
Windows-only packages that are a mess, but wonder why that is so), are
trivial to build and install:

python setup.py install

For most packages, even fetching the package is automated via
ez_install. Even further, with eggs you probably could automatically
fetch (and potentially build and install) a package from inside an
app, but that is considered bad tone (security wise, and automatism
might break).

And to make it even funnier all of this is trival scriptable, while
all these nice GUI installers take my time.

The point is easy: Building a custom Python with a set of crazy
dependencies takes some hours on my Linux laptop. Setting up the same
crazy dependencies with GUI dependencies on Windows XP took me almost
a week.

I admit, my sympathies lie with the "type a command, go to lunch, come
back and have dozens servers installed and configured" crowd, and not
the "uhh, no time for lunch today, I have to wait when the GUI
installer will prompt me some stupid question" crowd :)

> their python scripts, because they have to make-install etc. whereas 
> windows people have a nice friendly,
> fuzzy little GUI installer for the majority of python packages.
> So including an interpreter on the CD With your program that has all of 
> the dependencies built in may not be a bad idea.


> Oh, and to address your original question:
> I don't think it's possible to have a single .exe with all your 
> program's functionality contained within.
It is. But it is usually not worth the pain.
Hints:
* one can build almost all modules statically into the binary.
* one can zip all Python code into one zip file.
* and to make it even funnier, zip files are "appendable" onto almost
all binaries.
* there are a number of tools that google will show you that automate
this process more or less painfully.

Andreas


More information about the Tutor mailing list