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

Python Discussion :

[PyQt4] Installation OCI driver


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut [PyQt4] Installation OCI driver
    Bonjour,

    J'essaie actuellement d'installer le driver OCI pour PyQt4, mais je ne trouve pas la marche à suivre... Les seules informations que je trouve concernent l'installation du driver sur Qt et je ne sais pas comment faire le lien avec PyQt4. J'ai effectivement trouvé le dossier où se situent les driver SQL pour PyQt, mais pas le dossier "oci" ou encore le fichier "oci.pro" dont il est fait mention sur ce tutorial.

    Quelqu'un connaîtrait une méthode pour installer ce driver ?

    Merci d'avance pour votre aide,

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    PyQt4 n'est qu'une fine couche qui permet d'appeler Qt depuis Python.
    Si vous voulez installer le driver Oracle, il faut mettre les mains dans Qt et le C++.
    Cela fait, le driver sera aussi accessible via PyQt4 via l'API QSql.

    Vous auriez plus de chance de trouver de l'aide dans le forum Qt qu'ici.
    N'oubliez pas de préciser l'OS sur lequel vous travaillez: si vous avez lu la doc., les pièges sont très OS dépendants.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Donc si je comprend bien, il faut que j'installe Qt (je n'en avais pas besoin jusqu'à présent, pyqt4 suffisait) puis le driver OCI. Par contre j'ai du mal à comprendre comment le lien se fait entre PyQt4 (qui se trouve dans le dossier Python27) et Qt (qui va se trouver dans un autre dossier vraisemblablement), inclure QtSql dans mon fichier python ira chercher le driver jusque dans le dossier Qt ?

    J'utilise Windows 7 comme OS.

    Merci pour votre réponse,

  4. #4
    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,

    Les drivers fournis avec PyQt4 sous Windows sont sous forme de dll et sont ici: C:\Python27\Lib\site-packages\PyQt4\plugins\sqldrivers.

    Par l'intermédiaire de PyQt4, Python va dire aux fonctions Qt4 quel driver utiliser, mais ce sont les fonctions de Qt4 qui l'utiliseront.

    Je suppose donc qu'il "suffit" de créer le driver en C++ (=> .dll sous Windows), de le copier avec les autres drivers de PyQt4. Il est aussi possible qu'il faille faire quelque chose pour que PyQt4 le "reconnaisse"? Dans la mesure où on ne trouve pas d'info sur le net, il faut essayer. Avant, il faut peut-être chercher dans les mailing-lists: http://www.riverbankcomputing.com/pipermail/pyqt/

    Je ne l'ai jamais fait, mais je sais qu'il y a une doc de Qt4 qui dit comment faire (en anglais): http://qt-project.org/doc/qt-4.8/qtsql.html

    Il faudrait donc installer Qt4. Pour Python 2.7, il s'agit probablement de la version 4.8.5 de Qt4. On la trouve ici: https://qt-project.org/downloads#qt-other. Si vous n'avez pas MS Visual Studio (attention: il n'est pas sûr que ça fonctionne avec la version Express), il faut prendre la version avec mingw (=compilateur open source) pour Windows.

    Je ne sais pas si QtCreator est livré avec Qt4. Il s'agit de l'IDE pour travailler en C++ sous Qt. Si ce n'est pas le cas, il est disponible sur la même page.

    Il est important aussi d'avoir la doc. Je suppose que QtAssistant est livré avec, et qu'il sera déjà "branché" sur la doc. La doc est aussi en ligne (http://qt-project.org/doc/qt-4.8/), mais je trouve QtAssistant beaucoup plus pratique.

    Après, il faut suivre la doc et apprendre à utiliser les outils (et le C++ !).

    Bon courage!
    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

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    PyQt4 est aussi livré avec des binaires qui incluent les .DLL de Qt et l'interface qui permet d'utiliser cela avec Python.
    Sur windows, je ne sais pas si vous pouvez facilement étendre la partie Qt livrée avec ce packaging: pour compiler il faut des en-têtes, une toolchain, etc... que les "binaires" oublient parfois.
    Il est plus "sain" de partir des sources.
    En plus comme le driver OCI est propriétaire pas facile de trouver de l'aide.

    PyQt c'est fastoche, mais dès que vous sortez un peu des sentiers battus, il y a du boulot.
    Si quelqu'un n'a pas une idée géniale, il va vous falloir apprendre tout çà.

    Bon courage.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    J'ai réussi a générer les DLL oci pour Qt4 (ce post aide beaucoup), mais je n'arrive pas a faire le lien avec pyqt4... J'ai essayé de copier le fichier dll et le dossier entier contenant la dll dans le dossier PyQt4/plugins/sqldrivers mais j'ai toujours le message d'erreur "Driver not loaded" quand j'essaie d'ouvrir une BDD en utilisant QOCI.

    Quelqu'un connaîtrait-il une solution pour lier qt4 à PyQt4 ?

    Merci pour vos réponses

  7. #7
    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,

    Bizarre, je pensais que ce serait plus simple. Je viens de trouver un fil sur le mailing-list de riverbank qui parle du sujet:

    http://www.riverbankcomputing.com/pi...ne/031667.html

    Cette réponse semble confirmer qu'il n'y a rien à faire de particulier avec PyQt4: le driver écrit en C++ est utilisé par les fonctions de Qt4 en C++.

    Mais dans la doc (ici: http://pyqt.sourceforge.net/Docs/PyQ...ldatabase.html), je viens de trouver ceci:

    Get the names of the available SQL drivers with drivers(). Check for the presence of a particular driver with isDriverAvailable(). If you have created your own custom driver, you must register it with registerSqlDriver().
    Cela répond peut-être au problème?
    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

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Dans la mesure où l'on peut utiliser PyQt4 sans avoir installé Qt4, je ne pense pas qu'il y ait de lien direct entre les deux... Mais ca contredit effectivement le fil de la mailinglist, c'est étrange.

    Concernant le registerSqlDriver, je ne vois pas à quel endroit je dois passer ma dll en argument. Par ailleurs, quand j'essaie d'utiliser QtSql.QSqlDriverCreatorBase(), python me retourne "PyQt4.QtSql.QSqlDriverCreatorBase represents a C++ abstract class and cannot be instantiated". Mais c'est possible que cela me permette de résoudre mon problème si je parviens à l'utiliser correctement ( et si on peut utiliser cette méthode), je vais creuser de ce côté là.

    Merci pour votre aide,

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Petites mises à jour du pb... J'ai voulu m'assurer que le driver OCI était bien compilé en essayant de créer une QSqlDatabase à partir de Qt4 (en C++ donc). J'arrive bien à compiler le driver (il est défini comme "available" quand j'utilise QSqlDatabase::drivers().join(";")), cependant, quand j'essaie d'ajouter une base de donnée (QSqlDatabase::addDatabase("QOCI");) j'ai le message d'erreur "Driver not loaded".

    En gros, le driver est disponible, mais pas chargé...
    Voilà les solutions que j'ai déjà essayé :

    -DLL et lib dans le dossier de l'exécutable
    -Mise à jour variable PATH avec le chemin vers les DLL
    -Ma QApplication est bien déclarée et initialisée
    -Utilisation de la variable QT_DEBUG_PLUGINS à 1 pour avoir des logs (sortie : "QFactoryLoader::QFactoryLoader() looking at "C:/Qt/4.8.5/plugins/sqldrivers/qsqlocid4.dll". keys("QOCI","QOCI8")"
    -Réinstallation complète de Qt 4.8.5
    -Ajout de QT += sql dans le fichier .pro
    -Ajout de QT_PLUGIN += qsqloci qsqlocid dans le fichier .pro

    Est-ce que quelqu'un aurait une idée pour me débloquer ?

    Merci d'avance,

  10. #10
    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,

    Je crois avoir déjà tiré toutes mes cartouches, mais au cas où:

    - doc de Qt4.8 concernant les drivers, y compris OCI: http://qt-project.org/doc/qt-4.8/sql...atabase-driver

    - regarde si il y a quelque chose à faire avec le fichier qt.conf: http://qt-project.org/doc/qt-4.8/qt-conf.html

    Je crois savoir que les drivers SQL perso peuvent être construits comme des plugins. Or, je sais faire des widgets "customisés" en PyQt4 utilisables avec QtDesigner, mais je n'ai rien trouvé concernant les drivers SQL avec Python.
    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

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    N'oubliez pas que les talents Qt traînent plutôt dans les forums Qt.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Je suis également allé voir sur les forums Qt. Merci à vous deux en tout cas d'avoir essayé de m'aider Je posterai la solution quand je l'aurai trouvé =)

  13. #13
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    J'y suis enfin arrivé ! J'ai du tout recompiler en utilisant minGW, l'installeur de PyQt4 sur sourceforge utilisait le compilateur de Visual Studio alors que qt utilise minGW 4.4...

    Voici le lien vers le post du forum Qt-Project grâce auquel je suis parvenu à installer le driver : http://qt-project.org/forums/viewthread/41132/

    Merci à ceux qui m'ont aidé (wiztricks et tyrtamos) !

  14. #14
    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
    Bravo! Ce n'était pas évident à trouver.

    Et quelque part tu as quand même la chance que Python, compilé avec MSC, supporte encore PyQt4, compilé maintenant avec minGW...

    Merci pour avoir donné ta solution: ça servira!
    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

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/05/2013, 16h35
  2. installation de driver pour périphériques USB
    Par devmat dans le forum Windows XP
    Réponses: 6
    Dernier message: 14/01/2006, 14h19
  3. Problème d'install des drivers NVIDIA
    Par Blowih dans le forum Matériel
    Réponses: 4
    Dernier message: 14/08/2004, 20h16
  4. Problème d'installation de driver pour une carte réseaux
    Par black is beautiful dans le forum Matériel
    Réponses: 3
    Dernier message: 19/07/2004, 21h33
  5. Installer mon driver carte reseaux
    Par kaygee dans le forum Matériel
    Réponses: 9
    Dernier message: 26/02/2004, 19h31

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