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

Py2exe Python Discussion :

debutant pyqt et py2exe


Sujet :

Py2exe Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Points : 20
    Points
    20
    Par défaut debutant pyqt et py2exe
    windows
    python 2.6.2
    PyQt 4.5
    py2exe 0.6.9


    Bonjour,

    j'ai suivi les instructions du tutoriel suivant : http://python.developpez.com/faq/?page=Py2exe

    Malgré cela, je n'arrive pas à créer un exécutable à partir de mon programme en python.

    Voici un programme d'exemple tout simple ouvrant une fenêtre avec quelques widgets (push boutons, radio bouton ...) codé en PyQt. (il n'y a aucun signal c'est juste un test).

    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
     
    #untitled.py
     
    # -*- coding: utf-8 -*-
     
    # Form implementation generated from reading ui file 'untitled.ui'
    #
    # Created: Wed Jul 08 17:06:48 2009
    #      by: PyQt4 UI code generator 4.5.1
    #
    # WARNING! All changes made in this file will be lost!
     
    from PyQt4 import QtCore, QtGui
     
    class Ui_MainWindow(object):
        def setupUi(self, MainWindow):
            MainWindow.setObjectName("MainWindow")
            MainWindow.resize(530, 525)
            self.centralwidget = QtGui.QWidget(MainWindow)
            self.centralwidget.setObjectName("centralwidget")
            self.radioButton = QtGui.QRadioButton(self.centralwidget)
            self.radioButton.setGeometry(QtCore.QRect(172, 169, 151, 20))
            self.radioButton.setObjectName("radioButton")
            self.checkBox = QtGui.QCheckBox(self.centralwidget)
            self.checkBox.setGeometry(QtCore.QRect(170, 250, 71, 19))
            self.checkBox.setObjectName("checkBox")
            self.commandLinkButton = QtGui.QCommandLinkButton(self.centralwidget)
            self.commandLinkButton.setGeometry(QtCore.QRect(180, 310, 168, 41))
            self.commandLinkButton.setObjectName("commandLinkButton")
            self.buttonBox = QtGui.QDialogButtonBox(self.centralwidget)
            self.buttonBox.setGeometry(QtCore.QRect(170, 390, 156, 24))
            self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
            self.buttonBox.setObjectName("buttonBox")
            MainWindow.setCentralWidget(self.centralwidget)
            self.menubar = QtGui.QMenuBar(MainWindow)
            self.menubar.setGeometry(QtCore.QRect(0, 0, 530, 19))
            self.menubar.setObjectName("menubar")
            MainWindow.setMenuBar(self.menubar)
            self.statusbar = QtGui.QStatusBar(MainWindow)
            self.statusbar.setObjectName("statusbar")
            MainWindow.setStatusBar(self.statusbar)
     
            self.retranslateUi(MainWindow)
            QtCore.QMetaObject.connectSlotsByName(MainWindow)
     
        def retranslateUi(self, MainWindow):
            MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
            self.radioButton.setText(QtGui.QApplication.translate("MainWindow", "RadioButton", None, QtGui.QApplication.UnicodeUTF8))
            self.checkBox.setText(QtGui.QApplication.translate("MainWindow", "CheckBox", None, QtGui.QApplication.UnicodeUTF8))
            self.commandLinkButton.setText(QtGui.QApplication.translate("MainWindow", "CommandLinkButton", None, QtGui.QApplication.UnicodeUTF8))
     
     
    if __name__ == "__main__":
        import sys
        app = QtGui.QApplication(sys.argv)
        MainWindow = QtGui.QMainWindow()
        ui = Ui_MainWindow()
        ui.setupUi(MainWindow)
        MainWindow.show()
        sys.exit(app.exec_())
    je crée donc mon fichier setup.py :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #setup.py
     
    from distutils.core import setup
     
    import py2exe
     
    setup(windows=["untitled.py"])
    avec 'windows' à la place de 'console' puisque j'ai une interface graphique qui est censé se lancer.


    puis je tape la ligne de commande suivante :

    je double clique sur l'exécutable généré mais une fenêtre m'indique que des erreurs sont survenues et de regarder le fichier de logs dont voici le détail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Traceback (most recent call last):
      File "C:\Python26\lib\site-packages\py2exe\boot_common.py", line 92, in <module>
        import linecache
      File "linecache.pyc", line 9, in <module>
      File "os.pyc", line 3, in <module>
    AttributeError: 'module' object has no attribute 'name'
    Traceback (most recent call last):
      File "untitled.py", line 10, in <module>
      File "PyQt4\QtCore.pyc", line 12, in <module>
      File "PyQt4\QtCore.pyc", line 3, in __load
      File "os.pyc", line 3, in <module>
    AttributeError: 'module' object has no attribute 'name'
    J'ai eu beau chercher, je ne vois pas d'explication ou de solution ... si quelqu'un pouvait m'aiguiller, j'en serais reconnaissant !

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Points : 396
    Points
    396
    Par défaut
    Si ton programme tourne correctement, alors regarde si pour la bibliothèque Qt il n'y a pas à construire un "setup.py" particulier. Celà se pourrait, mais je ne sais pas car je n'utilise pas Qt.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    Oui mon programme tourne normalement en le lançant en ligne de commande (python untitled.py).

    Il ne faut pas faire de setup.py particulier pour pouvoir créer un exe avec pyqt à priori selon mes recherches.

    Mais je continue à chercher !

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Points : 396
    Points
    396
    Par défaut
    En fait je pensais à un truc barbare du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    from distutils.core import setup
    import py2exe
     
    setup(windows=[{"script" : "app.pyw"}], options={"py2exe" : {"includes" : ["sip", "PyQt4._qt"]}})
    vu sur le site ICI.

    Sinon, bon courage.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    Merci pour ta suggestion mais malheureusement ça ne change rien au problème. J'ai de plus essayer de réinstaller py2exe puisque l'erreur semble être à cause de lui ...

    Sans résultat. Je cherche toujours !

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    Je suis reparti de zéro en réinstallant tout proprement (python puis pyqt puis py2exe etc...) et tout semble marcher correctement

    Au passage j'utilise gui2exe qui est une interface graphique qui permet de choisir quel programme on souhaite utiliser entre py2exe pyinstaller cx freeze ... et qui marche ma foi pas mal !

    je mets le sujet en résolu.

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

Discussions similaires

  1. Créer un exécutable Windows avec py2exe pour PYQt
    Par nerazuri85 dans le forum Py2exe
    Réponses: 5
    Dernier message: 07/08/2008, 21h59
  2. [PyQt] [py2exe]
    Par Zorro dans le forum Py2exe
    Réponses: 2
    Dernier message: 05/05/2006, 13h36
  3. [FLASH] pb debutant
    Par ultrakas dans le forum Flash
    Réponses: 2
    Dernier message: 05/06/2003, 00h48
  4. [debutant]Limiter le temps de saisi
    Par Nasky dans le forum C
    Réponses: 5
    Dernier message: 17/03/2003, 15h47
  5. Réponses: 3
    Dernier message: 09/02/2003, 01h09

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