Bonsoir,
je suis actuellement en Terminale S et pour mon projet de fin d'année, je travaille sur Tkinter.

Je suis donc en train de suivre le cours d'apprentissage présent sur ce site : http://python.developpez.com/cours/T...age=page_10#L8

J'en suis au chapitre 8.5, à l'image d'oiseau

Donc je copie/colle le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
from Tkinter import *
 
fen1 = Tk()
 
# création de widgets 'Label' et 'Entry' :
txt1 = Label(fen1, text ='Premier champ :')
txt2 = Label(fen1, text ='Second :')
txt3 = Label(fen1, text ='Troisième :')
entr1 = Entry(fen1)
entr2 = Entry(fen1)
entr3 = Entry(fen1)
 
# création d'un widget 'Canvas' contenant une image bitmap :
can1 = Canvas(fen1, width =160, height =160, bg ='white')
photo = PhotoImage(file ='Martin_P.gif')
item = can1.create_image(80, 80, image =photo)
 
# Mise en page à l'aide de la méthode 'grid' :
txt1.grid(row =1, sticky =E)
txt2.grid(row =2, sticky =E)
txt3.grid(row =3, sticky =E)
entr1.grid(row =1, column =2)
entr2.grid(row =2, column =2)
entr3.grid(row =3, column =2)
can1.grid(row =1, column =3, rowspan =3, padx =10, pady =5)
 
# démarrage :
fen1.mainloop()
Puis je remplace le nom d'image "Martin_P" par une image .gif qui se trouve dans le même répertoire que mon programme.

j’obtiens donc le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
def main():
    pass
 
if __name__ == '__main__':
 
 
    from Tkinter import *
 
fen1 = Tk()
 
# cr?ation de widgets 'Label' et 'Entry' :
txt1 = Label(fen1, text ='Premier champ :')
txt2 = Label(fen1, text ='Second :')
txt3 = Label(fen1, text ='Troisi?me :')
entr1 = Entry(fen1)
entr2 = Entry(fen1)
entr3 = Entry(fen1)
 
# cr?ation d'un widget 'Canvas' contenant une image bitmap :
can1 = Canvas(fen1, width =160, height =160, bg ='white')
photo = PhotoImage(file ='diable.gif')
item = can1.create_image(80, 80, image =photo)
 
# Mise en page ? l'aide de la m?thode 'grid' :
txt1.grid(row =1, sticky =E)
txt2.grid(row =2, sticky =E)
txt3.grid(row =3, sticky =E)
entr1.grid(row =1, column =2)
entr2.grid(row =2, column =2)
entr3.grid(row =3, column =2)
can1.grid(row =1, column =3, rowspan =3, padx =10, pady =5)
 
# d?marrage :
fen1.mainloop()
 
main()
Mais quand je le lance (pas trop loin bien sur) Pyscripter m'affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Traceback (most recent call last):
  File "<string>", line 254, in run_nodebug
  File "C:\python\[ISN]Projet bac\Insertion image.py", line 35, in <module>
    item = can1.create_image(80, 80, image =photo)
  File "C:\Python27\Lib\lib-tk\Tkinter.py", line 2198, in create_image
    return self._create('image', args, kw)
  File "C:\Python27\Lib\lib-tk\Tkinter.py", line 2189, in _create
    *(args + self._options(cnf, kw))))
_tkinter.TclError: image "pyimage11" doesn't exist

Je pense que le problème vient de mon image (c'est même sur ^^) mais je ne vois pas du tout où.
j'ai fouillé la fac et le forum mais je n'ai rien trouvé qui pourrait m'aider.

Merci d'avance.