PyGTK and pyexe

Tom Cocagne tom.cocagne at gmail.com
Sun Mar 20 01:22:40 CET 2005


 Hmmmm. Well, the way I did it, if I remember correctly (the files are at
work), was to run the line "python setup.py py2exe --force --excludes gtk,
gobject,pango" and then copied the entire GTK directory into the
distribution directory. Just copying the DLLs doesn't suffice since there
are other files required for GTK to operate properly (config files, icons,
etc, etc). Once I got it working, I tried removing files from the GTK tree
that didn't look important and was able to halve the size of the resulting
package.

 It took a while to figure out the first time but all subsequent builds have
been as simple as running that one python command and copying my custom GTK
directory into the dist directory.

 Without being at my desk, that's the best I explanation I can give. If
Monday rolls around and you still don't have it working, send an e-mail to
my work account: tom [dot] cocagne [at] navy [dot] mil and I'll give you a
few more specifics.

 Cheers,

 Tom


Viktor wrote:

> Nope, it doesn't work... I've tried that and the only thing I got was:
> 
> ImportError: could not import pango
> ImportError: could not import pango
> Traceback (most recent call last):
>   File "test.py", line 5, in ?
>   File "gtk\__init__.pyc", line 113, in ?
> AttributeError: 'module' object has no attribute 'Font'
> 
> But it has:
> 
>>>> import pango
>>>> dir(pango).index('Font')
> 71
> 
> 
> The only way it works is with this setup.py:
> 
> ........................................................................
> 
> from distutils.core import setup
> import py2exe
> import glob
> 
> opts = {
>     "py2exe": {
>         "includes": ["pango", "atk", "gobject", "gtk"],
>         "dll_excludes": ["iconv.dll", "intl.dll",
>                 "libatk-1.0-0.dll", "libgdk_pixbuf-2.0-0.dll",
>                 "libgdk-win32-2.0-0.dll", "libglib-2.0-0.dll",
>                 "libgmodule-2.0-0.dll", "libgobject-2.0-0.dll",
>                 "libgthread-2.0-0.dll", "libgtk-win32-2.0-0.dll",
>                 "libpango-1.0-0.dll", "libpangowin32-1.0-0.dll"]
>     }
> }
> 
> setup(
>     name = "test",
>     description = "Test GUI programm",
>     version = "0.1",
>     windows = [{
>         "script": "test.py",
>         "icon_resources": [(1, "test.ico")]
>     }],
>     options=opts,
>     data_files=[("pixmaps", glob.glob("pixmaps/*.png")),
>                 ("glade", glob.glob("glade/*.*"))
>     ],
> )
> 
> ........................................................................
> 
> But it's not stand-alone, it needs GTK, and when I copy all the dlls
> needed in the dist directory, I get the same message as before.
> 
> Pango-ERROR **: file shape.c: line 75 (pango_shape): assertion faled:
> (glyphs->num_glyphs > 0) aborting...
> 
> By the way, I'm allways getting this message at the end:
> 
> The following modules appear to be missing
> ['gdk', 'ltihooks']




More information about the Python-list mailing list