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

PyQt Python Discussion :

Segmentation Fault sur PyQt5.uic.loadUi()


Sujet :

PyQt Python

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 117
    Points : 33
    Points
    33
    Par défaut Segmentation Fault sur PyQt5.uic.loadUi()
    Bonjour,

    J'ai développé pendant une paire d'année un logiciel de pilotage de tête panoramique nommé Papywizard.

    À l'origine, il tournait en PyGtk, puis je l'ai basculé en PyQt4. Aujourd'hui, j'aimerais le faire tourner en PyQt5.

    J'ai modifié les quelques bricoles qui diffèrent entre Qt4 et Qt5, mais là, je tombe sur un os que je ne comprend pas : ça crashe sur le chargement du GUI, sur l'appel de PyQt5.uic.loadUi().

    Je n'ai rien trouvé à ce sujet sur le net... Est-ce que ce problème parle à quelqu'un ? Car je ne vois pas comment débuguer ça.

    Merci d'avance.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 302
    Points : 6 782
    Points
    6 782
    Par défaut
    Salut,

    Essaye déjà de le convertir d'abord:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pyuic5 -x app.ui -o app.py
    Et si erreur il y a, copie colle le message complet.

    De toute manière il est préférable de procéder ainsi, Python pourra enregistrer le bitecode et les lancements suivant seront plus rapides.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 117
    Points : 33
    Points
    33
    Par défaut
    Bon, ça, ça passe. De même, j'ai testé le chargement du fichier .ui depuis ipython, avec le code minimaliste (création de l'application Qt), et ça marche aussi.

    Ça veut dire que c'est lié à ce que je fais avant... Je vais essayer de commenter certaines parties pour voir ce qui peut provoquer ça.

    Merci !

    PS : je préfère le chargement dynamique du fichier .ui, même si ça prend un poil plus de temps.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 117
    Points : 33
    Points
    33
    Par défaut
    Bon, j'ai finalement cerné le problème. Au début du script, j'ai un 'import icons'. Si je le commente, ça ne plante plus.

    Ce fichier icons.py semble avoir été généré par un outil (pyuic ?), mais je ne me souviens plus du pourquoi ni du comment (ça fait longtemps que j'ai fait ça)... 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
     
    # -*- coding: utf-8 -*-
     
    # Resource object code
    #
    # Created: sam. sept. 19 10:18:15 2009
    #      by: The Resource Compiler for PyQt (Qt v4.5.2)
    #
    # WARNING! All changes made in this file will be lost!
     
    from PyQt5 import QtCore
     
    qt_resource_data = "\
    \x00\x00\x06\xc8\
    \x89\
    \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
    \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
    \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\
    ...
    \x00\x00\x05\x06\x00\x00\x00\x00\x00\x01\x00\x01\x0e\x1b\
    \x00\x00\x00\x50\x00\x00\x00\x00\x00\x01\x00\x00\x0d\x04\
    \x00\x00\x05\x62\x00\x00\x00\x00\x00\x01\x00\x01\x2b\x8f\
    \x00\x00\x03\x28\x00\x00\x00\x00\x00\x01\x00\x00\xab\xb0\
    "
     
    def qInitResources():
        QtCore.qRegisterResourceData(0x01, qt_resource_struct.encode(), qt_resource_name.encode(), qt_resource_data.encode())
     
    def qCleanupResources():
        QtCore.qUnregisterResourceData(0x01, qt_resource_struct.encode(), qt_resource_name.encode(), qt_resource_data.encode())
     
    qInitResources()
    Je pense qu'il faut que je re-génère ce fichier avec les outils de pyqt5, non ? Je vais me replonger dans cette partie.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 117
    Points : 33
    Points
    33
    Par défaut
    C'est peut-être plutôt le fichier .qrc, généré par pyrcc qui pose problème...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 117
    Points : 33
    Points
    33
    Par défaut
    Bingo ! En fait, c'est le fichier icons.py qui est généré depuis icons.qrc, par pyrcc.

    PS : à l'occase, faudra que je retrouve comment on génère le fichier icons.qrc... Il doit dépendre des fichier .ui, j'imagine...

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 302
    Points : 6 782
    Points
    6 782
    Par défaut
    Ce fichier que tu montres m'a tout l'air d'être issu d'un fichier .rc, fichier de ressource que tu as créé avec le designer (peut-être par inadvertance) et que l'on convertit avec pyrcc5.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 117
    Points : 33
    Points
    33
    Par défaut
    Yep, c'est ce que j'ai vu. J'ai dû aussi re-générer les fichiers de traduction et les pixmaps.

    Tout roule, maintenant !

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

Discussions similaires

  1. Segmentation fault sur mon serveur
    Par zoullou dans le forum Administration système
    Réponses: 2
    Dernier message: 06/04/2007, 11h17
  2. Segmentation fault sur script PHP
    Par zoullou dans le forum Langage
    Réponses: 1
    Dernier message: 03/04/2007, 10h32
  3. Segmentation fault sur new[] et delete[]
    Par Don ViP dans le forum C++
    Réponses: 4
    Dernier message: 30/04/2006, 01h29
  4. Segmentation Fault sur un fclose
    Par Beush dans le forum C
    Réponses: 9
    Dernier message: 30/11/2005, 20h30
  5. Segmentation fault sur un gethostbyname ?
    Par Mitox dans le forum Réseau
    Réponses: 9
    Dernier message: 25/11/2005, 17h17

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