Bonjour,

J'ai créé un exécutable à partir de cx_freeze sur du code python. Il fonctionne correctement. J'ai voulu ensuite créer un fichier d'installation avec INNO. Tout se passe très bien jusqu'à ce que je le lance, une fois le programme installé. J'obtiens alors l'erreur :

"RuntimeError: Could not find the matplotlib data files: "
voir l'image de fenetre DOS jointe :
Nom : inno_erreur.png
Affichages : 416
Taille : 18,9 Ko

J'ai cherché assez longuement sur internet mais je ne trouve rien de décisif pour le moment.

Je suis revenu au fichier setup.py de cx_freeze. Voici son contenu:
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
 
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Python 2.7
# 02/2011
 
import sys, os
from cx_Freeze import setup, Executable
import matplotlib
 
#############################################################################
# préparation des options
 
# chemins de recherche des modules
 
path='D:\\IceSat\\tests\\test_executable\\test_GLASDataExtraction'
 
if os.path.exists(path):
    print "exist"
 
if path in sys.path:
    print "OK"
else:
    print "insert"
    sys.path.append(path)
 
 
path = sys.path + ["package_interface", "package_traitement"]
 
##build_exe_options = { 'packages': ['scipy'],
##                     "include_files": [('C:\\Python27\\Lib\\site-packages\\scipy\\special\\_ufuncs.pyd','_ufuncs.pyd')]}
 
 
# options d'inclusion/exclusion des modules
##includes = ["sip", "matplotlib"]
includes = ["sip"]
##excludes = ["tk","tcl"]
excludes = []
##packages = ["scipy", "scipy.signal", "scipy.special", "matplotlib", "matplotlib.mpl-data"]
##packages = ["scipy", "scipy.signal", "scipy.special", "matplotlib",  "matplotlib.backends"]
##packages = ["scipy", "scipy.signal", "scipy.special", "matplotlib"]
packages = ["scipy", "scipy.signal", "scipy.special"]
##packages = ["scipy", "scipy.signal", "scipy.special", "matplotlib", "matplotlib.backends", "matplotlib.mpl-data"]
 
 ### construction du dictionnaire des options
options = {"path": path,
           "includes": includes,
           "excludes": excludes,
           "packages": packages,
##           "include_files": includefiles,
           "include_files":[(matplotlib.get_data_path(),"mpl-data")]
##           "include_files":[(matplotlib.get_data_path(),"HDE")]
####           "include_files":[matplotlib.get_data_path(),"C:\\Python27\\Lib\site-packages\\matplotlib\\mpl-data"]
##           "bin_path_includes": binpathincludes
           }
 
 
# création du setup
setup(
    name = "GLASDataExtraction",
    version = "1",
    description = "Extraction et analyse de data GLAS",
    author = "Henri",
    options = {"build_exe": options},
##    executables = [cible_1]
    executables=[Executable("main.py")]
    )

J'ai mis beaucoup de choses en commentaires dans mon fichier, car j'ai testé différentes options, je cherche la version la plus simple qui n'impacte pas le contenu du build créé.

Dans mon répertoire exe... contenu dans le build créé par cx_freeze , j'ai le fichier library.zip avec entre autres packages matplotlib, mais pas mpl-data qui ne semble pas être un package de matplotlib (il n'existe pas de __init__.py pour mpl-data). J'ai aussi d'autres fichiers .pyd et 4 répertoires: imageformats, mpl-data, tcl, tk. mpl-data est donc bien présent avec son contenu.

Puis je créé mon fichier d'installation avec INNO et je lance l'installation sur Program Files (x86). Le répertoire de mon programme est créé là avec quelques répertoires et pas mal de fichiers, dont ceux de mpl-data.

Quand je lance ensuite mon application j'ai donc le message d'erreur:

"RuntimeError: Could not find the matplotlib data files".

Il y a beaucoup de référence à cette erreur en ce qui concerne py2exe mais rien en ce qui concerne cx_freeze.

Pourriez-vous m'aider s'il vous plait ? Merci !

ma configuration :
WINDOWS 7 64 bits
python 2.7 64 bits
cx_freeze 4.3.3
inno 5.5.5
pyqt4