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 !