cx_Freeze, PyQt et matplotlib
Bonjour,
Je rencontre des difficultés à freezer correctement un code qui affiche un widget qt contenant un tracé matplotlib.
Voci l'erreur que je recontre
Code:
1 2 3 4
|
....
File ExtensionLoader_matplotlib_path.py, line 12 in <module>
ImportError : numpy.core.multiarray failed to import |
Voici les import que je fais dans le programme :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| from __future__ import division
import sys
from collections import namedtuple
from datetime import date,timedelta,datetime
from PyQt4 import QtGui, QtCore
from interval import Interval
import matplotlib.backends.backend_qt4agg
import matplotlib
import matplotlib.lines as mlines
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure |
Et, enfin, voici le script que j'utilise pour "geler" le tout
Code:
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
|
#!/usr/bin/env python
# -*- coding:UTF-8 -*-
import sys, os
import matplotlib
from cx_Freeze import setup, Executable
# Searh path
path = sys.path
# options d'inclusion/exclusion des modules
includes = ["sip","atexit"]
excludes = []
packages = []
includefiles = [( matplotlib.get_data_path(),"mpl-data")]
# 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 = "lineswidget.py",
base = base,
compress = True,
icon = None,
)
#############################################################################
# setup
setup(
name = "lineswidget",
version = "1",
description = "freeze matplotlib test",
author='chticri',
options={"build_exe":options},
executables=[cible_1]
) |
Pourtant, à l'issue du setup, j'ai bien un fichier numpy.core.multiarray dans le répertoire de l'application.
Merci d'avance pour toute piste de solution