Hello Werner - Thanks for your patient suggestions.
I followed them to the letter and - hurrah - it works!
The fundemental difference seems to be that I was just calling setup like this:
    setup( ...
        packages = ...);
And now I've done this:
    setup( ...
        options = {"py2exe": {"packages": ["pytz",],},},
Hmmm... looks like I misunderstood something fundemental about how I'm supposed to be using py2exe.  I'd better RTFM I think!

From: py2exe-users-bounces@lists.sourceforge.net on behalf of Werner F. Bruhin
Sent: Wed 11/28/2007 11:10 AM
To: py2exe-users@lists.sourceforge.net
Subject: Re: [Py2exe-users] py2exe and pytz


John Penney wrote:
> Apologies for previous email... my reply got cut-off in mid-sentence!
> I build the list of packages like this (I think I copied this from some
> other recipe):
>     packages = ['c:\\python\\Pmw', 'pytz']
>     for dirpath, dirname, filenames in
> os.walk(os.path.join('pytz','zoneinfo')):
>         packages.append('.'.join(dirpath.split(os.sep)))
> And here's what the list contains:
>     ['c:\\python\\Pmw', 'pytz', 'pytz.zoneinfo', 'pytz.zoneinfo.Africa',
> 'pytz.zoneinfo.America', 'pytz.zoneinfo.America.Argentina',
> 'pytz.zoneinfo.America.Indiana', 'pytz.zoneinfo.America.Kentucky',
> 'pytz.zoneinfo.America.North_Dakota', pytz.zoneinfo.Antarctica',
> 'pytz.zoneinfo.Arctic', 'pytz.zoneinfo.Asia', 'pytz.zoneinfo.Atlantic',
> 'pytz.zoneinfo.Australia', 'pytz.zoneinfo.Brazil',
> 'pytz.zoneinfo.Canada', 'pytz.zoneinfo.Chile',
> 'pytz.zoneinfo.Etc','pytz.zoneinfo.Europe', 'pytz.zoneinfo.Indian',
> 'pytz.zoneinfo.Mexico', 'pytz.zoneinfo.Pacific', 'pytz.zoneinfo.US']
> But no joy: pytz.zoneinfo.Europe (etc) are missing from library.zip.
If you want all zoneinfo I would do:

options = {"py2exe": {"compressed": 1,
                       "optimize": 2,
                       "packages": ["encodings",

That works for me, I also tried things like:

options = {"py2exe": {"compressed": 1,
                       "optimize": 2,
                       "packages": ["encodings",

Which only gave me Europe, or you could just do:
options = {"py2exe": {"compressed": 1,
                       "optimize": 2,
                       "packages": ["encodings",

"optimize": 2 is like running python.exe -oo, i.e. optimize and remove
doc strings.
"compressed: 1 reduces the dist folder size (frankly can't remember
exactly what it does but on a little test I just run I see 24.3MB if I
set it and otherwise it is 29.4MB.


SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
Py2exe-users mailing list