IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Déploiement/Installation Python Discussion :

cx_Freeze, PyQt et matplotlib


Sujet :

Déploiement/Installation Python

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 180
    Points : 321
    Points
    321
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
    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 : 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
     
    #!/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

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Commence déjà par retirer tous les accents dans les commentaires du setup: j'ai déjà eu des erreurs à cause de ça (il faudra que je mette à jour mes tutos sur le sujet).

    Essaie de mettre numpy.core.multiarray, ou numpy.core ou même numpy dans l'option package

    Si ça ne marche toujours pas, essaie de donner un code minimal qui a le problème pour que je puisse chercher.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 180
    Points : 321
    Points
    321
    Par défaut
    Bonjour et merci beaucoup Tyrtamos

    J'ai fait un premier essai en virant les accents, rien n'a changé. Toutefois, si cela ne marchait toujours pas en incluant numpy.core.multiarray, la comparaison
    brute des versions ainsi gelées retournait beaucoup de différence.

    Je me suis alors demandé si mon problème n'avait pas pour origine la version de
    cx_Freeze (4.2.3) que j'utilisais. J'ai donc installé la version 4.3.1 et ...
    bingo !

    Franchement, il y a tout intérêt à) utiliser cette version. En outre, il semble que
    ce soit la première qui prenne en compte les packages distribués sous forme egg

    A bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. inno, cx_freeze, matplotlib data files
    Par olap75 dans le forum Déploiement/Installation
    Réponses: 3
    Dernier message: 16/08/2014, 16h35
  2. PyQt et cx_freeze
    Par chticricri dans le forum PyQt
    Réponses: 2
    Dernier message: 27/01/2012, 15h36
  3. [cx_freeze] Application PyQt qui perd son icône ?
    Par Darel dans le forum Déploiement/Installation
    Réponses: 2
    Dernier message: 09/08/2011, 19h09
  4. Réponses: 4
    Dernier message: 03/10/2010, 11h30
  5. [PyQt] [py2exe]
    Par Zorro dans le forum Py2exe
    Réponses: 2
    Dernier message: 05/05/2006, 13h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo