IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Erreur d'importation d'un fichier .py


Sujet :

Tkinter Python

  1. #1
    Membre confirmé Avatar de stuffy
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 31

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Par défaut Erreur d'importation d'un fichier .py
    Bonjours j'ai un dossier qui contient les fichiers nécessaire pour pour le programme principale (image, arrière plan etc ...) lorsque je met la ligne de code import info.py cela importe le programme info mais pas les image et j'ai l'erreur suivante :

    TclError : Image "pyimage5" doesn't exist


    Voicfi le code source du programme principal :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
     
     
    # -*- coding: Latin-1 -*-
     
     
    # **** DEVELOPED BY  (STUFFY-92)  [  FRENCH ]  **** #
     
     
    # =================================================== #
    #                                               #
    #     Version : Betâ 1.0                                                                  #
    #     Auteur : Stuffy                                                                     #
    #     Année : 2008                            #
    #     Localisation : France ,  92100                    #
    #     Licence : GPL                                                                        #
    #                                               #
    # =================================================== #
     
     
    #------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
     
     
    # IMPORTATION DES BIBLIOTEQUES #
     
    from Tkinter import*
    import tkMessageBox
    import tkFont
     
    #------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
     
     
    #  ===== SCRIPT SYSTEME =====  #
     
     
     
     
    URL = "  www.clg-bartholdi-boulogne.ac-versailles.fr"
    HOST_URL = "127.0.0.1  www.clg-bartholdi-boulogne.ac-versailles.fr"
    mod_cur = 0
     
    def cursor_restaure ():
     
        bouton3.configure(cursor='@cursor_stop.cur')
        bouton2.configure(cursor='@cursor_add.cur')
     
    def cursor_desactive ():    
     
        bouton3.configure(cursor='@cursor_add.cur')
        bouton2.configure(cursor='@cursor_stop.cur')
     
    def desactivation ():
     
        cursor_restaure()
     
        if HOST_URL in file("C:\WINDOWS\system32\drivers\etc\hosts"):
     
            tkMessageBox.showinfo("Info", "Vous avez déjà désactivé le site.")
     
     
        else:
     
            hosts_copy = open('C:\WINDOWS\system32\drivers\etc\hosts','r')
            hosts_save = open('hosts_save','w')
     
            while 1:
     
                chaine_copy = hosts_copy.readline(50)
     
                if (chaine_copy == ""):
     
                    break
     
                chaine_save = hosts_save.write(chaine_copy)
     
            hosts_save.close()
            hosts_copy.close()
     
     
            write_hosts = open('C:\WINDOWS\system32\drivers\etc\hosts','a')
            host = write_hosts.write("\n127.0.0.1")
            host = write_hosts.write(URL)
            write_hosts.close()
     
     
     
    def restauration ():
     
        cursor_desactive()
     
        if HOST_URL in file("C:\WINDOWS\system32\drivers\etc\hosts"):
     
            read_hosts = open("hosts_save", "r")
            restore_hosts = open('C:\WINDOWS\system32\drivers\etc\hosts','w')
     
            while 1:
     
                read_chaine = read_hosts.readline(50)
     
                if (read_chaine == ""):
     
                    break
     
                restore_chaine = restore_hosts.write(read_chaine)
     
            read_hosts.close()
            restore_hosts.close()
     
        else:
            tkMessageBox.showinfo("info", "Le site est déjà débloqué.")
     
    def about (): 
     
        import Info.py
     
    #------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
     
     
    #  ===== SCRIPT VISUEL =====  #
     
    fenetre=Tk()
    fenetre.title('Block-Mark')
    fenetre.iconbitmap("Ressources\Images\Icon.ico")
    fenetre.geometry("280x100")
    fenetre.resizable(width=False, height=False)
    fenetre.configure(cursor='@cursor_normal.cur')
     
    img1 = PhotoImage(file = "Ressources\Images\Désactiver.gif")
    img2 = PhotoImage(file = "Ressources\Images\Restaurer.gif")
    img3 = PhotoImage(file = "Ressources\Images\About.gif")
    img4 = PhotoImage(file = "Ressources\Images\Background.gif")
     
    fond = Label(fenetre)
    fond.configure( image = img4 )
    fond.pack()
     
    bouton1=Button(fenetre)
    bouton1.configure(command = about, image = img3, relief = FLAT, bd = 0, cursor = "@cursor_help.cur")
    bouton1.place(y = 7, x = 255)
     
    bouton2=Button(fenetre)
    bouton2.configure(command = restauration, image = img2, relief = FLAT, bd = 0)
    bouton2.place(y = 55, x = 160)
     
    bouton3=Button(fenetre)
    bouton3.configure(command = desactivation, image = img1, relief = FLAT, bd = 0)
    bouton3.place(y = 55, x = 50)
     
     
    if HOST_URL in file("C:\WINDOWS\system32\drivers\etc\hosts"):
     
        bouton3.configure(cursor='@cursor_stop.cur')
        bouton2.configure(cursor='@cursor_add.cur')    
     
    else:
     
        bouton3.configure(cursor='@cursor_add.cur')
        bouton2.configure(cursor='@cursor_stop.cur')
     
    fenetre.mainloop()
    #------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
    Voici maintenant le code source de programme Info.py

    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
     
     
    # -*- coding: Latin-1 -*-
     
    from Tkinter import*
    import tkFont
     
    txt_info = "Version : Bêta 1.0\nDéveloppeur : Stuffy\nRéférence : SD 0001"
     
    fenetre_info=Tk()
    fenetre_info.title('Info')
    fenetre_info.iconbitmap("Icon.ico")
    fenetre_info.geometry("280x100")
    fenetre_info.resizable(width=False, height=False)
     
    img1 = PhotoImage(file = "fond.gif")
     
    police = tkFont.Font(fenetre_info)
    police.configure(size = 10,family = "calibri")
     
    fond = Label(fenetre_info)
    fond.configure( image = img1 )
    fond.pack()
     
    texte_info = Label(fenetre_info)
    texte_info.configure(text = txt_info, font = police)
    texte_info.place( y = 20, x = 85)
     
    fenetre_info.mainloop()

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Essaye déjà de ne pas mettre ".py" dans l'instruction d'importation:


  3. #3
    Membre confirmé Avatar de stuffy
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 31

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Par défaut
    je ne pas encore tester ton ta méthode mais pour info "info.py" et une fichier python ordinaire que j'ai créé

  4. #4
    Membre confirmé Avatar de stuffy
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 31

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Par défaut
    j'ai testé ta méthode aucun changement la fenetre info s'import mais les image ne s'affiche pas et l'erreur TclError : Image "pyimage5" doesn't exist revient

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 119
    Par défaut
    Autres points:
    - tous les backslashs (\) doivent être doublés dans tes chaînes ou bien utilise les chaînes raw (r'')
    - pyimage5 n'apparait pas dans ton source, le message d'erreur doit t'en dire plus sur l'endroit ou le probleme apparait.

  6. #6
    Membre confirmé Avatar de stuffy
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 31

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Par défaut
    Voici l'erreur que ma console affiche et tout les renseignement supplémentaire dans le fichier joint


  7. #7
    Membre expérimenté Avatar de Gaillac
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    pour le pyimage5 c'est normal de ne pas le retrouver dans le code, c'est tkinter qui compte ses liens vers les images.
    la 5eme donc (6ème s'il commence à 0? je ne sais pas).

    Donc question con, est-ce que tu as bien ton gif au même endroit que ton py? Ou que de l'endroit où tu lance ton py d'ailleurs...

    Il est vicieux python, son répertoire courant n'est pas celui du script mais celui d'où tu le lance (os.getcwd()) ).

    Pour plus de sécurité je te conseil un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #dossier courant du script :
    self.wd_Racine = sys.path[0]  
     
    #puis
    img1 = PhotoImage(file=self.wd_Racine + "/" + "fond.gif")
    Après libre à toi de regrouper tes images dans un dossier dédié, et de modifier le chemin en conséquence.

  8. #8
    Membre confirmé Avatar de stuffy
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 31

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Par défaut
    Mes image quel soit pour le programme centrale et info (les programme son dans le même dossier) sont dans le dossier des programme

  9. #9
    Membre chevronné
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mai 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2003
    Messages : 290
    Par défaut
    Bonjour,
    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
    from Tkinter import*
    import tkFont
     
    txt_info = "Version : Bêta 1.0\nDéveloppeur : Stuffy\nRéférence : SD 0001"
     
    fenetre_info=Toplevel() #Une seule instance de Tk
    fenetre_info.title('Info')
    fenetre_info.iconbitmap("Icon.ico")
    fenetre_info.geometry("280x100")
    fenetre_info.resizable(width=False, height=False)
     
    img1 = PhotoImage(file = "fond.gif")
     
    police = tkFont.Font(fenetre_info)
    police.configure(size = 10,family = "calibri")
     
    fond = Label(fenetre_info)
    fond.configure( image = img1 )
    fond.pack()
     
    texte_info = Label(fenetre_info)
    texte_info.configure(text = txt_info, font = police)
    texte_info.place( y = 20, x = 85)

  10. #10
    Membre confirmé Avatar de stuffy
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 31

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Par défaut
    Merci tout marche à la perfection et maintenant je sait qu'il ne faut qu'une instance Tk

  11. #11
    Membre chevronné
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mai 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2003
    Messages : 290
    Par défaut
    Non, tout ne va pas bien.
    L'import ne se fait qu'une fois. Si tu rappelles ta fenêtre info, il ne se passera rien.
    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
    class Info(Toplevel):
        def __init__(self):
            Toplevel.__init__(self)
            txt_info = "Version : Bêta 1.0\nDéveloppeur : Stuffy\nRéférence : SD 0001"
            self.title('Info')
            self.iconbitmap("Icon.ico")
            self.geometry("280x100")
            self.resizable(width=False, height=False)
            self.img1 = PhotoImage(file = "fond.gif")
     
            police = tkFont.Font(self)
            police.configure(size = 10,family = "calibri")
     
            fond = Label(self)
            fond.configure( image = self.img1 )
            fond.pack()
     
            texte_info = Label(self)
            texte_info.configure(text = txt_info, font = police)
            texte_info.place( y = 20, x = 85)
    Mets 'import info' au début du script.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def about():
        fen_info=info.Info()

  12. #12
    Membre confirmé Avatar de stuffy
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 31

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Par défaut
    Le code de la fonction about du programme principale doit être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    def about (): 
     
    	import Info
    	fen_info=info.Info()
    et le code de mon programme Info.py

    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
     
     
    # -*- coding: Latin-1 -*-
     
    from Tkinter import*
    import tkFont
     
    class Info(Toplevel):
        def __init__(self):
            Toplevel.__init__(self)
            txt_info = "Version : Bêta 1.0\nDéveloppeur : Stuffy\nRéférence : SD 0001"
            self.title('Info')
            self.iconbitmap("Icon.ico")
            self.geometry("280x100")
            self.resizable(width=False, height=False)
            self.img1 = PhotoImage(file = "fond.gif")
     
            police = tkFont.Font(self)
            police.configure(size = 10,family = "calibri")
     
            fond = Label(self)
            fond.configure( image = self.img1 )
            fond.pack()
     
            texte_info = Label(self)
            texte_info.configure(text = txt_info, font = police)
            texte_info.place( y = 20, x = 85)

  13. #13
    Membre confirmé Avatar de stuffy
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 31

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Par défaut

    Erreur de ma pars j'avais mal compris les instruction


    Citation Envoyé par stuffy Voir le message
    Le code de la fonction about du programme principale doit être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    def about (): 
     
    	import Info
    	fen_info=info.Info()
    et le code de mon programme Info.py

    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
     
     
    # -*- coding: Latin-1 -*-
     
    from Tkinter import*
    import tkFont
     
    class Info(Toplevel):
        def __init__(self):
            Toplevel.__init__(self)
            txt_info = "Version : Bêta 1.0\nDéveloppeur : Stuffy\nRéférence : SD 0001"
            self.title('Info')
            self.iconbitmap("Icon.ico")
            self.geometry("280x100")
            self.resizable(width=False, height=False)
            self.img1 = PhotoImage(file = "fond.gif")
     
            police = tkFont.Font(self)
            police.configure(size = 10,family = "calibri")
     
            fond = Label(self)
            fond.configure( image = self.img1 )
            fond.pack()
     
            texte_info = Label(self)
            texte_info.configure(text = txt_info, font = police)
            texte_info.place( y = 20, x = 85)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur d'importation d'un fichier SQL
    Par Orizine dans le forum Administration
    Réponses: 0
    Dernier message: 30/08/2013, 17h18
  2. Erreur d'Importation d'un fichier texte
    Par Quentin15 dans le forum R
    Réponses: 6
    Dernier message: 01/09/2011, 11h51
  3. Erreur d'import de fichier ".zexp"
    Par cronos6 dans le forum Zope
    Réponses: 5
    Dernier message: 22/08/2006, 09h08
  4. Réponses: 4
    Dernier message: 27/07/2006, 22h25
  5. [SQL Server 2000] erreur lors importation fichier excel
    Par Abydos Business Group dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/03/2006, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo