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 :

An instance of QCoreApplication is required for loading driver plugins [QtCore]


Sujet :

PyQt Python

  1. #1
    Membre confirmé Avatar de Narann
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Par défaut An instance of QCoreApplication is required for loading driver plugins
    Bonjours à tous et merci d'avance pour vos réponses.

    Je butte depuis pas mal de temps sur un soucis qui je pense, est tout bête...

    Je cherche à faire un module python (ecu.py) qui récupère des informations dans une BDD MySQL.

    Pour ça, je souhaite utiliser uniquement la partie QtSql de PyQt (pas besoin du reste pour le moment...).

    Quand je fais (dans un ecuTest.py):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import ecu
    print ecu.getInfos()
    Et que je lance ecuTest.py, ça marche impec!

    Mais quand je fais ça directement dans un terminal python:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> import ecu
    >>> print ecu.getInfos()
    QSqlDatabase: QMYSQL driver not loaded
    QSqlDatabase: available drivers:
    QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
    J'avais déjà eu ce souci (et je trouvais bizarre de devoir créer un QApp pour juste utiliser QtSql). Je m'en étais sorti en faisant un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    app = QtGui.QApplication(sys.argv)
    Dès le début du fichier ecu.py.

    Mais il semble qu'en passant par un terminal python, cette combine ne marche pas...

    J'ai donc une simple question :

    Quelle est la bonne méthode pour pouvoir loader les drivers QtSql dans le cas d'un module?

    Merci d'avance à tous et bonne semaine!

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    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 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Avec PyQt, on peut écrire des programmes qui s'exécutent en console (sans graphique). Il suffit pour ça d'initialiser la machine PyQt avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    app = QtCore.QCoreApplication(sys.argv)
    Avec ça, on peut, par exemple, consulter des bases de données avec QtSql.

    Tyrtamos

  3. #3
    Membre confirmé Avatar de Narann
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Par défaut
    Merci de la réponse.

    Oui, mon programme ecu.py s’exécute impec en console si je le lance directement.

    C'est quand je l'utilise "à la volé" en passant par IDLE et un:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> import ecu
    >>> print ecu.getInfos()
    Il m'affiche ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    QSqlDatabase: QMYSQL driver not loaded
    QSqlDatabase: available drivers:
    QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
    J'ai ça au début de mon fichier ecu.py:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # -*- coding: utf-8 -*-
     
    import sys, os, shutil, re
    import xml.etree.ElementTree as ET
     
    import ConfigParser, pdb
     
    from PyQt4 import QtSql, QtGui
     
    app = QtGui.QApplication(sys.argv)	# this is needed to load database drivers
     
    class Blabla() :
    etc...
    Ou bien je n'ai pas bien compris ce que tu veux dire...

    Help please.

  4. #4
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    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 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Il faut REMPLACER "app = QtGui.QApplication(sys.argv)" par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    app = QtCore.QCoreApplication(sys.argv)
    Après, bien sûr, avoir importé QtCore de PyQt4.

    Puisqu'il n'y a plus de graphique, QtGui devient inutile.

    Tyrtamos

  5. #5
    Membre confirmé Avatar de Narann
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Par défaut
    Arf! Ok! J'avais pas vu la subtilité...

    app = QtCore.QCoreApplication(sys.argv)
    app = QtGui.QApplication(sys.argv)

    Je trouvais ça bizarre aussi d'avoir à utiliser QtGui juste pour charger les drivers SQL

    Un grand merci!

    Vous me sortez d'un mauvais pas!

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

Discussions similaires

  1. Erreur servlet hibernate: id to load is required for loading
    Par salma309 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 14/03/2011, 15h26
  2. Réponses: 1
    Dernier message: 26/07/2007, 17h29
  3. Réponses: 4
    Dernier message: 24/07/2007, 11h06
  4. Create database for Load ok mais online ko
    Par sailor lvcv dans le forum Sybase
    Réponses: 3
    Dernier message: 17/07/2007, 14h59
  5. [C#][debutant]erreur => object reference is required for a no
    Par ChristopheOce dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/01/2006, 13h47

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