OVH Cloud OVH Cloud

py2exe et gtk

2 réponses
Avatar
cho7
Bonjour,

J'ai fais un script distutils tout bête pour une application qui utilise
pygtk, et lors de la compilation et de l'execution j'ai des erreurs.

Tout d'abord lors de la compilation :

The following modules appear to be missing
['gdk', 'ltihooks']

puis quand je lance le .exe généré j'ai le droit à :

"errors occured" (see log file)

dans le log :
Traceback (most recent call last):
File "test_gtk.py", line 2, in ?
File "pygtk.pyc", line 73, in require
AssertionError: required version '2.0' not found on system


Je précise que j'ai bien gtk 2.8 d'installé sur mon système, et que le
script python original tourne très bien

Bref, j'ai viré ma ligne pygtk.require("2.0") pour voir ce que ca donnait,
et donc désormais dans le log à l'execution j'ai :

ImportError: could not import pango
ImportError: could not import pango
Traceback (most recent call last):
File "test_gtk.py", line 2, in ?
File "gtk\__init__.pyc", line 113, in ?
AttributeError: 'module' object has no attribute 'Font'


Erf... C'etait plus simple de faire un .exe avec un programme console :)

Je dois avoir faux quelque part, mais où ?

mon script distutils:
from distutils.core import setup
import py2exe
setup (
windows=[
{
"script": "test_gtk.py",
"icon_resources": [(1,"plop.ico")]
}
]
)

Merci !

--
cho7
"Plus grosse est la pomme, plus gros est le ver." - cho7, 2005

2 réponses

Avatar
cho7
Re,

après avoir rajouté un --includes pango sur la ligne de commande de py2exe,
j'ai ensuite eu une erreur similaire me disant qu'il manquait atk

j'ai donc retenté avec --includes pango,atk et désormais le programme crash
misérablement (microsoftr visual c++ runtime error) j'ai dans les logs:

C:Documents and SettingsAdministrateurBureaudisttest_gtk.exe:30:
PangoWarning: No builtin or dynamically loaded modules
were found. Pango will not work correctly. This probably means
there was an error in the creation of:
'C:Documents and
SettingsAdministrateurBureaudistetcpangopango.modules'
You may be able to recreate this file by running pango-querymodules.
C:Documents and SettingsAdministrateurBureaudisttest_gtk.exe:30:
PangoWarning: _pango_engine_shape_shape: assertion `PANGO_IS_FONT (font)'
failed

Mais keskimveut lui ?
Avatar
cho7
Problème résolu.

Après quelques recherches, j'ai en effet ajouté le bloc suivant dans mon
script :

opts = {
"py2exe": {
"includes": "pango,atk,gobject",
"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"],

}
}


Faudrait juste m'expliquer le pourquoi du comment (que je ne meurs pas bête)
et aussi me dire si il n'y a pas un raccourci, plutot que d'ecrire un pavé
de la sorte, car là j'serai obligé de faire du copié collé a chaque nouveau
script distutils, ce qui est dommage compte tenu de la simplicité d'un
script distutils d'une appli console...