Erreur d'affichage d'un GIF sur tKinter

Signaler
-
 GarKam -
Bonjour,
Je travail sur mac et j'ai écrit un programme pour qu'une page tkinter s'ouvre avec un GIF qui passe (Mon GIF se trouve dans le même dossier que mon code)

from tkinter import *

window = Tk()

window.title("Louis' life")
window.geometry("1680x1050")
window.config(background="black")

width = 1680
height = 1050
image = PhotoImage(file= "Louis_life.gif")
canvas = canvas(window, width=width, height=height, bg="black")
canvas.create_image(width/2, height/2, image=image)
canvas.pack(expand=YES)


window.mainloop()


Cependant, lorsque j'exécute mon programme à l'aide du terminal, le launcher Python s'ouvre et se referme aussitôt. Le terminal ne me met aucun message d'erreur mais un rapport d'erreur apple s'ouvre pour me dire que l'appli "Python launcher" à quitté de manière imprévu. j'ai essayer de changer l'image par une image ".png" qui se trouve aussi dans le même dossier mais lorsque je fait cela mon programme ne s'exécute pas et un message d'erreur apparait :

DEPRECATION WARNING: The system version of Tk is deprecated and may be removed in a future release. Please don't rely on it. Set TK_SILENCE_DEPRECATION=1 to suppress this warning.
Traceback (most recent call last):
File "Image_tkinter.py", line 35, in <module>
image = PhotoImage(file= "test.png")
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 3377, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 3331, in __init__
self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't recognize data in image file "test.png"

Je ne comprend pas pourquoi le programme ne se lance pas ni pourquoi le launcher python crash. Est-ce que quelqu'un saurait pourquoi cela se passe comme cela ?

Bonne journée,
Lastronaute

Configuration: Macintosh / Chrome 90.0.4430.212

4 réponses

Bonjour,
Ce n'est pas :
canvas = canvas(window, width=width, height=height, bg="black")

mais :
canvas = Canvas(window, width=width, height=height, bg="black")
Bonjour.

Le message est clair, python 2.7 est désormais obsolète et n'est plus maintenu !
La dernière version est la 3.9 => https://www.python.org/downloads/mac-osx/

En ce qui concerne ton problème tkinter ne gère pas le png, uniquement le gif
Effectivement Python 2.7 .... J'ai survolé le message :-)
Par contre PhotoImage gère très bien le png.
Il ne gère pas si bien le png, puisque :

>>> _tkinter.TclError: couldn't recognize data in image file "test.png"

Mais cela doit peut-être dépendre de la version de tk ? Ou du système ?
Aucune idée, mais en l'occurence chez lui et en 2.7, ça n'est pas géré.
Dans la doc :
Tkinter PhotoImage only supports the GIF, PGM, PPM, and PNG file formats.

Chez moi pas de problème Python 3.9.4, tkinter 8.6