2010-11-17 8 views
1

J'essaye de convertir un programme d'interface graphique qui utilise des images .png dans un fichier .exe en utilisant py2exe. Il utilise PIL pour afficher ces images. Cependant, j'ai des problèmes avec la conversion. Pour une raison quelconque, le fichier .exe ne fonctionnera pas. Des idées?Problèmes avec PIL et py2exe

Modifier

Erreur:

Traceback (most recent call last): 
    File "GUI1.2.8.py", line 454, in <module> 
    File "GUI1.2.8.py", line 13, in __init__ 
    File "Tkinter.pyc", line 1643, in __init__ 
_tkinter.TclError: Can't find a usable init.tcl in the following directories: 
    {C:/Users/rectangletangle/lib/tcl8.5} {C:/Users/rectangletangle/lib/tcl8.5} C:/Users/lib/tcl8.5 {C:/Users/rectangletangle/library} C:/Users/library C:/Users/tcl8.5.8/library C:/tcl8.5.8/library 



This probably means that Tcl wasn't installed properly. 

L'erreur semble être sans aucun rapport (Si je fais quelque chose de mal avec py2exe, c'est l'erreur que je reçois habituellement). Tout, travail jusqu'à ce que j'importe et utilise PIL. En outre, j'ai inclus PIL dans mon fichier d'installation.

Modifier 2

C'est un extrait montrant comment l'image je mets en œuvre.

self.image = ImageTk.PhotoImage(Image.open("image.png")) 
self.imageLabel = Tkinter.Label(self, image=self.image) 
self.imageLabel.grid(column=0, columnspan=4, row=0) 
+0

Quelle est l'erreur ? Incluez-vous le module 'PIL' dans votre fichier' setup.py'? – user225312

+0

Voir mon édition pour info. – rectangletangle

Répondre

1

Comment affichez-vous l'image?

peut-être que PIL utilise tcl/tk pour img.show() et c'est pourquoi vous devriez inclure tcl dans votre script de configuration py2exe.

+0

Voir Modifier 2. J'ai utilisé la méthode Image.open() dans Tkinter. – rectangletangle

+0

alors, as-tu essayé de forcer l'installation de tk/tcl? il y a une note à ce sujet dans les documents de py2exe. –

1

Juste au cas où quelqu'un arrive sur ce problème, j'ai pu corriger ce message d'erreur en ajoutant la init.tcl à mes section « data_files » dans mon fichier setup.py:

setup(data_files=['D:\\Python27\\tcl\\tcl8.5\\init.tcl', 
     windows=["script":'myfile.py')])