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 :

Py 3.6 et PyQT5


Sujet :

PyQt Python

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 179
    Points
    179
    Par défaut Py 3.6 et PyQT5
    Bonjour à tous,

    je fais mes premiers pas avec python et surtout avec l'interface graphique PyQt5.0

    J'ai développé, en guise de test, un petit programme python en utilisant Pycharm comme console de développement sous W10. J'ai aussi installé dans le répertoire de Python3.6-32 PyQt5 et ai construit une interface graphique qui convient pour faire la liaison avec le programme python.
    Je tente de traduire cette interface graphique "roulette.ui" en un programme python "roulette;py" en suivant les conseils trouvés sur le net et en utilisant la ligne de commande pyuic5 -x roulette.ui -o-roulette2.py comme il est indiqué sur le stutoriles que j'ai lu ou visionné sur le net.
    J'ai placé le fichier pyuc5.bat dans le répertoire où se trouve le fichier roulette.ui
    Ce fichier.bat ayant la structure suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @"C:\Program Files (x86)\Python36-32\python" -m PyQt5.uic.pyuic %1 %2 %3 %4 %5 %6 %7 %8 %9
    A l’exécution j'ai un message d'erreur " erreur ligne 26 -- ne trouve pas la Dll QtCore " .
    J'ai donc retrouvé le chemin et le fichier pyuic sur le répertoire :
    C:\Program Files (x86)\Python36-32\Lib\site-packages\PyQt5\uic
    et ai tenté de trouver la dll Qtcore qui provoquerait une erreur en ligne 26 du script python.
    Je n'ai trouvé qu'une dll Qt5Core.dll dans le répertoire site_package/ pyQt5.
    J'ai tenté de remplacer l'appel à QtCore par Qt5Core mais cela plante toujours.

    Quelqu'un peut-il m'indiquer comment enfin arriver à générer ce fameux fichier roulette.py .

    Merci

    Question subsidiaire : j'ai un certaine habitude de programmeur amateur avec Lazarus.
    Es-il possible d'intégrer des scripts Python dans Lazarus assez facilement ce qui offrirait une alternative à PyQt5, bien qu'il semble que PyQt5 soit bien plus riche en bibliothèques que Lazarus.
    Merci

  2. #2
    Expert éminent

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

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

    Ton fichier .bat m'a l'air bien ésotérique, oublions-le.

    La bonne ligne de commande dans un terminal est bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pyuic5 -x roulette.ui -o roulette2.py
    Sauf que sous Windows tu devras probablement utiliser des chemins complet.

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

    Pour éviter de mettre les adresses absolues, il faut que la variable d'environnement PATH de Windows contiennent au moins les adresses (séparées par des ';'):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "C:\Program Files (x86)\Python36-32" pour python.exe (et autres) et
    "C:\Program Files (x86)\Python36-32\Scripts" pour pyuic5.exe (et autres) et
    "C:\Program Files (x86)\Python36-32\Lib\site-packages" pour les modules ajoutés
    En principe, ces adresses sont automatiquement ajoutées par l'installation, mais si ce n'est pas le cas, il faut le faire "à la main".

    Dans la mesure où ces adresses sont bien dans le PATH, le fichier bat peut être simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pyuic5 roulette.ui -o roulette2.py
    A noter que je n'utilise jamais l'option '-x', car je n'exécute jamais séparément le fichier .py ainsi créé. Voir doc => http://pyqt.sourceforge.net/Docs/PyQ...er.html#pyuic5.
    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

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 179
    Points
    179
    Par défaut Python 3.6 W10 -- PyQt5 -- suite
    Bonjour à tous et merci pour les réponses à ma question.
    Suite à la réponse de Tyrtamos, j'ai examiné mon installation de Python et Qt5 et me suis aperçu que j'avais fait une erreur à l'Installation. J'ai tout désinstallé et tenté de Réinstaller à partir des éléments que j'avais téléchargé à savoir :
    - Get-pip.py
    - PyCharm-Community....
    - PyQt5-5.6-gpl-Py3.5-Qt5.6.0-x32-2.exe
    - PyQt5-5.10.1-5.10.1-cp35.cp36.cp37.cp38-none-win32.whl.
    - python-3.6.5.exe
    en demandant une installation pour tous les utilisateurs ce qui proposait une installation sous Programa files X86 etc..; avec Python 3.6.5.exe.
    Lorsque je tentais ensuite d'installer PyQt5...Whl j'avais un message d'erreur me disant que Pip version 9.0.3 (installé automatiquement était obsolète et qu'il fallait installer la version10) . Je suis donc allé chercher la version 10 chez le fournisseur et lorsque je tentais l'installation par python get-pip.py --upgrade come indiqué j'avais un message qui indiquait que le logiciel était chargé mais l'instalaltion était refusée car je n'avais pas les droits nécessaires. J'ai donc, sous le gestionnaire de fichiers modifié lesdroits d'accès à Pyhton36-32 et, en fait cette modification n'était jamis prise en compte. Après plusieurs essais - installation - désinstallation complète etc.. j'ai fait une installation sous C:/Phyton36 et non sous C:/ Program files Etc;; et la l'installation de l'upgrade ( Wheel, Pip ) a été possible mais il a fallu modifier les paths pourPython, python /lib etc.. en tennat compte de C:\python36\etc..
    j'ai installé sip que j'avais chargé (python configure.py dans le bon répertoire) .

    J'ai ensuite tenté d’installer le fichier Whl de PyQt5 en me disant que ce serait la meilleure solution mais cela n'a pas marché P(__main__) manquant. Par contre l’installation du fichier PyQt5.exe , elle a bien fonctionné et j'ai retrouvé Qt Designer dans Site-Packages/Pyqt5.
    Mais.... lorsque je lance la commande pyuic5 -x roulette.ui o-roulette.py J'ai toujours une erreur avec le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    C:\Users\Robert> pyuic5 roulette.ui -o roulette2.py
    Traceback (most recent call last):
      File "C:\Python36\lib\runpy.py", line 193, in _run_module_as_main
        "__main__", mod_spec)
      File "C:\Python36\lib\runpy.py", line 85, in _run_code
        exec(code, run_globals)
      File "C:\Python36\lib\site-packages\PyQt5\uic\pyuic.py", line 26, in <module>
        from PyQt5 import QtCore
    ImportError: DLL load failed: Le module spécifié est introuvable.
    J'avoue que c'est assez décevant. Quelqu'un aurait-il une suggestion ?
    Est-ce que PySide, bien que dépassé d'après ce que j'ai lu, pourrait être une soltion de repli pour accader à une interface garphique ?

    Merci

    R. O.

  5. #5
    Expert éminent

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

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

    Que contient réellement ce dossier : C:\Python36\lib\site-packages\PyQt5\ ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 179
    Points
    179
    Par défaut Python 3.6 W10 -- PyQt5 -- suite
    Bonjour,

    Le répertoire PyQT5 sous Sit-Packages contient : image joint au format jpg Nom : PyQt5.jpg
Affichages : 2557
Taille : 908,3 Ko.
    Merci pour votre aide.

    R.O.

  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,

    Pour l'instant, je suis sous Python 3.5.4. Mais comme ta difficulté m’intriguait, j'ai essayé sur un autre PC toujours en Win 10.

    Installation dans "c:\Python_365" de Python v3.6.5 téléchargé ici: https://www.python.org/ftp/python/3....thon-3.6.5.exe

    Vérification après l'installation:
    - variable d'environnement PATH: il y a bien "c:\Python_365" et "c:\Python_365\Scripts", mais il manque "c:\Python_365\Lib\site-packages" que j'ajoute à la main.
    - dans une console cmd, je lance "python", et j'obtiens un plantage! Après recherche, j'ai la variable d'environnement PYTHONHOME qui est fausse (à cause d'une ancienne installation). Après correction (j'y mets "c:\Python_365"): ça marche!

    A noter: pour modifier les variables d’environnement avec les dernières versions de Windows 10, ça devient pénible... Il faut:
    - accéder à la ligne d'exécution du menu (clic droit => exécuter)
    - taper dans cette ligne: "sysdm.cpl" puis lancer l'exécution.
    - Une fenêtre apparait, on prend l'onglet "Paramètres système avancés", puis "Variables d'environnement".

    Avec Python 3.5 et au dessus, il n'existe plus de PyQt5 au format binaire: il ne faut installer que la version wheel avec pip.

    Alors, je fais "pip install PyQt5", et ça plante avec erreur de droit??? J'essaie de mettre pip à jour avec "python -m pip install --upgrade pip" et ça plante pareil!
    Mais en fait, il suffit d'utiliser pip uniquement dans une console ouverte en tant qu'administrateur: ce n'est pas anormal puisqu'on touche un programme installé, mais c'est nouveau!

    Moyennant quoi, la modernisation de pip => v10.0.1, ainsi que l'installation de PyQt5 v5.10.1 (qui installe aussi sip v4.19.8) se passe sans problème.Ainsi que les compléments de PyQt5 avec "pip install pyqt5-tools" (pour avoir designer, assistant et linguist).

    Attention: il ne faut pas installer sip séparément: c'est PyQt5 qui amène son sip à la bonne version!

    Avec ça, tout marche!
    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
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 179
    Points
    179
    Par défaut Python et Pyqt5 -- gébnérer fichier py à partir de UI
    Bonsoir à tous et un grand merci à Tyrtamos.

    J'ai suivi ses conseils et ai désinstallé tout puis réinstallé Pyqt5 à partir de fichier whl mais j'ai du au préalable installer pip par Python get-pip.py.
    L'installation de Pyqt5 s'est faite ainsi que PYqt5- tools.
    Toutefois lorsque je lance la transformation de UI en py par Pyuic5 j'ai une erreur : One input ui file must be specified alors que je soit j'indique le chemin soit je me place dans le bon répertoire.
    Il y a donc du mieux mais ce n'est pas tout à fait cela.

    Une petite indication : Si vous disposez du raccourci vers "cePC" sur le bureau un clic droit permet d'accéder aux propriétés et paramètres sytèmes avancés permet d'accéder aux chemins.
    Bonne soirée

    R.O.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 179
    Points
    179
    Par défaut Python 3.6 W10 -- PyQt5 -- suite et Fin (jusqua'au prochain épisode)
    Bonsoir à tous,

    Après un peu de consultation de la Doc j'ai tenté à nouveau la conversion et cela a fonctionné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    D:\Ap_Python\Test\Zcasino>pyuic5 -x roulette.ui  -o rouletteGUI.py
    Je clos donc cette discussion...
    Mais suis certain que la suite de l'apprentissage en ouvrira d'autres
    Cordialement

    Merci
    R.O.

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

Discussions similaires

  1. Paramétrer Eric5 sous Linux pour faire du PyQt5
    Par Cenwen dans le forum Eric
    Réponses: 3
    Dernier message: 04/11/2013, 21h10
  2. PyQt5 et thread
    Par moumoute77 dans le forum PyQt
    Réponses: 9
    Dernier message: 27/10/2013, 14h17
  3. Installation de PyQt4 et PyQt5 possible ?
    Par Invité dans le forum PyQt
    Réponses: 0
    Dernier message: 26/06/2013, 23h06
  4. PyQt5 sur Android
    Par c-candide dans le forum Général Python
    Réponses: 1
    Dernier message: 03/05/2013, 08h34

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