Bonjour à tous,

Je rencontre un problème agaçant en tentant de figer mon code python + pyqt
au moyen de cx_freeze.

Voici le programme :
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
 
# -*- coding:UTF-8
#!/usr/bin/python
 
import sys
from PyQt4 import QtGui, QtCore
 
## Création de la fenêtre principale.
class Frame(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.resize(600,500)
 
        self.button = QtGui.QPushButton ("Hello", self)
        ## Création de l'objet self.animate issu de QPropertyAnimation.
        ## Nous passons en argument le widget qui sera à animer et la propriété que nous allons animer
        self.animate = QtCore.QPropertyAnimation(self.button, "geometry")
        ## Nous rentrons le délai de l'animation en ms
        self.animate.setDuration(800)
        ## Nous indiquons les propriétés de départ
        self.animate.setStartValue(QtCore.QRect(0, 0, 100, 30))
        ## Puis les propriétés de fin
        self.animate.setEndValue(QtCore.QRect(250, 250, 300, 30))
        ## Et enfin nous démarrons l'animation
        self.animate.start()
 
 
app = QtGui.QApplication(sys.argv)
frame = Frame()
frame.show()
sys.exit(app.exec_())
(extrait d'un tutoriel)

et voici le script de setup

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
 
#!/usr/bin/env python
# -*- coding:UTF-8  -*-
 
import sys, os
from cx_Freeze import setup, Executable
 
# Searh path
path = sys.path + ['p:/python/shared']
 
# options d'inclusion/exclusion des modules
includes = [
    "sip"]
excludes = []
packages = []
 
includefiles = []
# inclusion éventuelle de bibliothèques supplémentaires
binpathincludes = []
options = {"path": path,
           "includes": includes,
           "excludes": excludes,
           "packages": packages,
           "include_files": includefiles,
           "bin_path_includes": binpathincludes
           }
#############################################################################
# préparation des cibles
base = None
if sys.platform == "win32":
    base = "Win32GUI"
 
cible_1 = Executable(
    script = "anim.py",
    base = base,
    compress = True,
    icon = None,
    )
#############################################################################
 
# setup
 
setup(
    name = "Animations",
    version = "1",
    description = "Essais d'animations",
    author='Cha',
    options={"build_exe":options},
    executables=[cible_1]
)
Ma version de python est 4.7.2, celle de cx_freeze est 4.2.3

Sur un machine, j'ai installé pyqt 4.8.3. Là, quand je gèle mon code, tout se passe bien et j'ai un exécutable fonctionnel.

Sur une autre machine, j'ai installé pyqt 4.8.6. Et c'est ici que les problèmes commencent. Il n'y a aucun message particulier à la compilation mais à l'exécution, je rencontre l'erreur suivante

ImportError : No module named atexit

C'est bizarre cette différence de comportement entre les deux. D'après les numéro de version, il ne s'agirait que de différences mineures.

Évidemment, je n'ai plus pyqt 4.8.3.

Ma question est de savoir si vous n'avez déjà rencontré ce problème et surtout comment le résoudre ?

Merci d'avance pour vos réponses