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 :
(extrait d'un tutoriel)
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_())
et voici le script de setup
Ma version de python est 4.7.2, celle de cx_freeze est 4.2.3
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] )
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
Partager