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

GTK+ avec Python Discussion :

Problème Import gtk [FAQ]


Sujet :

GTK+ avec Python

  1. #1
    sarumane
    Invité(e)
    Par défaut Problème Import gtk
    Bonjour à tous.


    J'apprend en ce moment le python, et je veux donc naturellement elaborer des interfaces.


    J'ai suivie les tutos avec glade, enfin tenté, car premier lancement d'un helloworld, et voici le problème:

    Traceback (most recent call last):
    File "C:\Documents and Settings\Xplosif\Bureau\Python\helloworld.py\helloworld.py", line 6, in <module>
    import gtk
    File "C:\Python25\Lib\site-packages\gtk-2.0\gtk\__init__.py", line 48, in <module>
    from gtk import _gtk
    ImportError: DLL load failed: La procédure spécifiée est introuvable.


    Voici mon code:

    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
    #!/usr/bin/env python
     
    import gtk
    import gtk.glade
     
    # Nous mettons tous nos handlers des signaux gtk dans une
    # classe. Ceci nous permet de les lier tous en une seule fois car leurs noms
    # sont dans le dictionnaire de la classe.
    class GladeHandlers:
            pass
     
    class WidgetsWrapper:
        def __init__(self):
            self.widgets = gtk.glade.XML('pyglade.glade', "window1")
            self.widgets.signal_autoconnect(GladeHandlers.__dict__)
     
        def __getitem__(self, key):
            """Ceci nous donne la possibilité de faire : widgets['widget_name'].action()"""
            return self.widgets.get_widget(key)
     
    if __name__ == '__main__':
        widgets = WidgetsWrapper()
     
        gtk.main()



    Je suis sur Windows Xp pro SP2, j'ai installé GTK+ avec glade, runtimes et environement de dev, ainsi que pygtk, et python 2.5.

    Pourriez vous m'aider ? Je commence à desesperer
    Dernière modification par Guigui_ ; 16/11/2006 à 22h03.

  2. #2
    Invité de passage
    Inscrit en
    Février 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 1
    Par défaut Pas le seul ?
    Yep j'ai aussi un bug du même style avec python 2.4 (et 2.5 aussi de toute façon) xindows XP édition familiale. Chez moi le bug est assorti du message d'erreur :

    "Le point d'entrée de procédure g_spawn_async_with_pipes_utf8 est introuvable dans la bibliothèque de liaisons dinamyque libglib-2.0-0.dll"

    Le message d'erreur python n'est pas tout à fait le même mais il y a aussi un problème de chargement de DLL.

    Ca apparaît dès que je tente un import de Pygtk (j'ai essayé plusieurs versions pas de changement). Je n'utilise pas glade.
    Voici mon code :
    import pygtk
    pygtk.require('2.0')
    import gtk

    window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    window.show()
    gtk.main()

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 93
    Par défaut salut
    avez vous telechargez et installer GTK+ runtime environement pycairo,pygtk,pyobject
    ou alors il faut ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    import pygtk
    pygtk.require('2.0')

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 147
    Par défaut
    salut a tous
    Désolé je n'ai pas posté le message comme il se doit

    je le refais


    je suis débutant en Python. Après avoir lu divers tuto, j'ai voulu tester quelques petits programmes histoire de me faire la main
    test avec le premier programme hellowordl.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
    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
    # !/usr/bin/env python
    # coding: utf8
    # exemple helloworld.py
     
    import pygtk
    pygtk.require('2.0')
    import gtk
     
    class SalutMonde:
     
    # Ceci est une fonction de rappel. Les arguments sont ignorés dans
    # cet exemple. Plus de précisions sur ces fonctions plus bas.
    def salut(self, widget, donnees=None):
    print "Salut tout le monde !"
     
    def evnmt_delete(self, widget, evenement, donnees=None):
    # Si on renvoie FALSE dans le gestionnaire du signal "evnmt_delete",
    # GTK émettra le signal "destroy". Renvoyer TRUE signifie que l'on
    # ne veut pas que la fenêtre soit détruite.
    # Ceci peut être utile pour faire apparaître des fenêtres
    # du type "Êtes vous sûr de vouloir quitter ?"
    print "Évènement delete survenu."
     
    # Changez FALSE par TRUE et la fenêtre principale ne 
    # sera pas détruite par un "delete_event"
    return False
     
    def destroy(self, widget, donnees=None):
    print "Évènement destroy survenu."
    gtk.main_quit()
     
    def __init__(self):
    # création d'une nouvelle fenêtre
    self.fenetre = gtk.Window(gtk.WINDOW_TOPLEVEL)
     
    # Quand la fenêtre reçoit le signal "delete_event" (donné par le
    # gestionnaire de fenêtres, généralement par l'option "fermer" ou
    # la croix de la barre de titre), on lui demande d'appeler la
    # fonction evnmt_delete() définie plus haut. On lui passe l'argument
    # NULL, qui est ignoré.
    self.fenetre.connect("delete_event", self.evnmt_delete)
     
    # Ici on connecte l'évènement "destroy" à un gestionnaire de signal.
    # Cet évènement se produit lorsqu'on invoque gtk_widget_destroy() sur
    # la fenêtre ou lorsque le gestionnaire du signal "delete" renvoie FALSE.
    self.fenetre.connect("destroy", self.destroy)
     
    # On fixe la largeur des bordures de la fenêtre.
    self.fenetre.set_border_width(10)
     
    # On crée un nouveau bouton avec l'étiquette "Salut tout le monde !".
    self.bouton = gtk.Button("Salut tout le monde !")
     
    # Lorsque le bouton reçoit le signal "clicked", il appelle la
    # fonction salut() et lui passe None comme argument. La fonction
    # salut() est définie plus haut.
    self.bouton.connect("clicked", self.salut, None)
     
    # Ceci entrainera la destruction de la fenêtre par l'appel de
    # gtk_widget_destroy(fenetre) si l'on clique le bouton. Encore une fois,
    # le signal "destroy" peut venir d'ici ou du gestionnaire de fenêtres.
    self.bouton.connect_object("clicked", gtk.Widget.destroy, self.fenetre)
     
    # On place le bouton dans la fenêtre (un conteneur GTK).
    self.fenetre.add(self.bouton)
     
    # La dernière étape consiste à afficher ce nouveau widget...
    self.bouton.show()
     
    # ...ainsi que la fenêtre
    self.fenetre.show()
     
    def boucle(self):
    # Toutes les applications PyGTK doivent avoir un gtk.main(). Arrivé à ce point,
    # le programme se met en attente d'un évènement (clic, appui d'une touche, etc.)
    gtk.main()
     
    # Si le programme est lancé directement ou passé en argument à l'interpréteur 
    # Python, ceci crée une instance de la classe SalutMonde et l'affiche
    if __name__ == "__main__":
    salut = SalutMonde()
    salut.boucle()

    J'ai installé Python IDLE 2.5.1, pygtk, les runtime de gtk+.
    J'ai mis le fichier helloworld.py dans le répertoire principal de python.
    Après les 2 tests :
    1-un test en commande directe python.exe helloword.py via fichier bat
    2-avec un RUN avec IDLE
    j'ai la même erreur, quelques choses m'échappe sûrement car j'ai le message
    >>>
    Traceback (most recent call last):
    File "C:\Python25\helloworld.py", line 7, in <module>
    import gtk
    File "C:\Python25\lib\site-packages\gtk-2.0\gtk\__init__.py", line 38, in <module>
    import gobject as _gobject
    File "C:\Python25\Lib\site-packages\gtk-2.0\gobject\__init__.py", line 30, in <module>
    from gobject.constants import *
    File "C:\Python25\Lib\site-packages\gtk-2.0\gobject\constants.py", line 22, in <module>
    from _gobject import type_from_name
    ImportError: DLL load failed: Le module spécifié est introuvable.

    J'ai installé gtk dans C:\Python25\Lib\site-packages
    Dans le même sous-répertoire,"C:\Python25\Lib\site-packages\gtk-2.0\gobject, il y a un fichier _gobject.pyd.

    Merci à une bonne âme de m'aider à trouver ce qui ne va pas.
    J'ai fait un test équivalent avec la bibiothèque Tkinter et la fenêtre s'ouvre bien avec IDLE.
    J'en ai déjà conclu que c'est une histoire de paramètrage avec PyGtk.
    J'ai déjà vu qu'il avait une histoire de variable d'environnement à compléter, mais je n'ai pas compris ce qu'il fallait faire et où mettre cette variable.
    Faut-il absolument mettre toutes les nouvelles bibliothèques externes dans C:\Python25\Lib\site-packages?

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Citation Envoyé par turboiii Voir le message
    salut a tous
    Désolé je n'ai pas posté le message comme il se doit

    je le refais
    Tu as un bouton "Éditer" pour modifier les posts que tu as faits et corriger ce genre d'oubli, c'est mieux que de faire un doublon

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 147
    Par défaut [résolu] pb d'intallation de pygtk
    Bonjour à tous,
    on en revient toujours au même pb, il s'agit de bien installer la chose
    je cite loic midy qui a fait un post sur le sous forum intallation python,pygtk....

    installer pygtk soit même n'est pas facile. Je te conseille d'utiliser le all-in-one installer de Alberto Ruiz que l'on trouve sur la page d'accueil http://www.pygtk.org/: pour moi celà a marché très vite.
    A noter un petit problème avec cet installer: il faut avoir la dll MSVCR71.dll dans le dossier system32 pour que l'installation se passe correctement.
    J'ai appliqué cette méthode et ....
    mon premier helloworld fonctionne par les commandes mises dans un fichier bat

    python.exe helloworld.py
    pause

Discussions similaires

  1. [VBA-A] Problème importation de formulaire
    Par eLoOe dans le forum VBA Access
    Réponses: 6
    Dernier message: 22/05/2006, 11h03
  2. Problème import Export...(syntaxe)
    Par friiitz dans le forum Access
    Réponses: 1
    Dernier message: 02/05/2006, 14h14
  3. Problème import Export...(syntaxe)
    Par friiitz dans le forum Access
    Réponses: 3
    Dernier message: 02/05/2006, 14h13
  4. Problème import de feuilles excel
    Par elkhy dans le forum Access
    Réponses: 9
    Dernier message: 25/04/2006, 09h54
  5. problème importation excel
    Par choupa25 dans le forum Access
    Réponses: 2
    Dernier message: 22/12/2005, 06h41

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