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 :

Avoir en même temps PyQt 4 et PyQt 5 avec les environnements virtuels sous Windows ?


Sujet :

PyQt Python

  1. #1
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    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 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut Avoir en même temps PyQt 4 et PyQt 5 avec les environnements virtuels sous Windows ?
    Bonjour,

    Même si je code en multiplateforme (Windows-Linux-MacOSX), je développe surtout sous Windows (8.1 actuellement). Je suis actuellement avec Python 3.4.

    J'ai installé PyQt4 avec le binaire .exe de riverbank. Et j'en ai besoin pour plusieurs programmes.

    J'aimerais bien pouvoir travailler en plus avec PyQt5. Mais riverbank dit que ce n'est pas possible (sauf si on recréé les 2 à partir des sources mais je ne veux pas faire ça).

    Ma question: pourrais-je avoir en même temps PyQt4 et PyQt5 grâce aux environnements virtuels (pyvenv)?.

    Par exemple, n'avoir aucun PyQt avec le Python normal, avoir PyQt4 dans l'un des environnements virtuels et PyQt5 dans l'autre. Il suffirait d'activer l'un ou l'autre de ces environnements (activate) pour avoir le "bon" PyQt: Quelqu'un a-t-il déjà fait ça? est-ce possible avec les binaires .exe de riverbank?

    Merci d'avance!
    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

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par tyrtamos Voir le message
    J'aimerais bien pouvoir travailler en plus avec PyQt5. Mais riverbank dit que ce n'est pas possible (sauf si on recréé les 2 à partir des sources mais je ne veux pas faire ça).
    Techniquement c'est "possible" si les 2 partagent la même version de "sip" mais... cela suppose de faire soi-même le build.

    Citation Envoyé par tyrtamos Voir le message
    Ma question: pourrais-je avoir en même temps PyQt4 et PyQt5 grâce aux environnements virtuels (pyvenv)?.
    Le soucis est que le kit de riverbank trouve dans la registry la dernière version de Python installée et s'il y trouve PyQt4, il s'arrête avec un message d'erreur.
    La solution est de hacker la registry pour que le kit trouve le "bon" environnement Python (i.e. celui du venv).

    Et çà se résume à ce script adapté à Python3 par mes soins.

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    # script to register Python 2.0 or later for use with win32all
    # and other extensions that require Python registry settings
    #
    # Adapted by Ned Batchelder and Alex Waters from a script
    # written by Joakim Low for Secret Labs AB / PythonWare
    #
    # source:
    # http://www.pythonware.com/products/works/articles/regpy20.htm
     
    import sys
     
    from winreg import *
    import ctypes
    import ctypes.wintypes
    import os.path
     
    # tweak as necessary
    version = sys.version[:3]
    installpath = sys.prefix
     
    regpath = "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version)
    installkey = "InstallPath"
    pythonkey = "PythonPath"
    pythonpath = "%s;%s\\Lib\\;%s\\DLLs\\" % (
        installpath, installpath, installpath
    )
     
    def RegisterPy():
        try:
            reg = OpenKey(HKEY_LOCAL_MACHINE, regpath)
        except EnvironmentError:
            try:
                reg = CreateKey(HKEY_LOCAL_MACHINE, regpath)
            except Exception as e:
                print ("*** Unable to register: %s" % e)
                return
     
        SetValue(reg, installkey, REG_SZ, installpath)
        SetValue(reg, pythonkey, REG_SZ, pythonpath)
        CloseKey(reg)
        print ("--- Python %s at %s is now registered!" % (version, installpath))
        input('Press any key...')
     
     
    class SHELLEXECUTEINFO(ctypes.Structure):
        _fields_ = (
            ("cbSize",ctypes.wintypes.DWORD),
            ("fMask",ctypes.c_ulong),
            ("hwnd",ctypes.wintypes.HANDLE),
            ("lpVerb",ctypes.c_char_p),
            ("lpFile",ctypes.c_char_p),
            ("lpParameters",ctypes.c_char_p),
            ("lpDirectory",ctypes.c_char_p),
            ("nShow",ctypes.c_int),
            ("hInstApp",ctypes.wintypes.HINSTANCE),
            ("lpIDList",ctypes.c_void_p),
            ("lpClass",ctypes.c_char_p),
            ("hKeyClass",ctypes.wintypes.HKEY),
            ("dwHotKey",ctypes.wintypes.DWORD),
            ("hIconOrMonitor",ctypes.wintypes.HANDLE),
            ("hProcess",ctypes.wintypes.HANDLE),
        )
     
    def need_admin():
        ShellExecuteEx = ctypes.windll.shell32.ShellExecuteEx
        ShellExecuteEx.restype = ctypes.wintypes.BOOL
        sei = SHELLEXECUTEINFO()
        sei.cbSize = ctypes.sizeof(sei)
        sei.lpVerb = b"runas"
        sei.lpFile = sys.executable.encode()
        sei.lpParameters = os.path.abspath(__file__).encode()
        sei.nShow = 1
        ShellExecuteEx(ctypes.byref(sei))
     
     
    if __name__ == "__main__":
        try:
            RegisterPy()
        except WindowsError as e:
            if e.errno == 13:
                need_admin()
            else:
                raise
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    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 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour wiztricks,

    Merci pour le code! C'est très intéressant.

    Mais comme je n'aime pas trop bidouiller dans les fichiers de registres, j'ai essayé de trouver une manip qui ne le nécessite pas. Je reviendrai au code si je n'y arrive pas.

    Voilà l'état de mes recherches: ça a l'air de marcher!

    Principe général: je me suis dit que l'inscription au registre lors de l'installation de PyQt4 et PyQt5 n'était utile que pour l'installation et non l'exécution.

    Alors, voilà comment je m'y prends:

    - je désinstalle PyQt4 du python installé "normal" (c:\python34)

    - je crée 2 environnements virtuels avec venv: d:\pyenvqt4 et d:\pyenvqt5

    - j'installe PyQt4 dans d:\pyenvqt4 (lors de l'installation, je demande "custom" au lieu de "full" pour pouvoir donner la bonne adresse)
    - je recopie le répertoire d:\pyenvqt4\Lib\site-packages\PyQt4 et le fichier d:\pyenvqt4\Lib\site-packages\sip.pyd (ne pas oublier!) dans un répertoire temporaire
    - je désinstalle PyQt4
    - je remets à sa place initiale d:\pyenvqt4\Lib\site-packages\PyQt4 et d:\pyenvqt4\Lib\site-packages\sip.pyd

    - j'installe PyQt5 dans d:\pyenvqt5 (lors de l'installation, je demande "custom" au lieu de "full" pour pouvoir donner la bonne adresse)
    - je recopie le répertoire d:\pyenvqt5\Lib\site-packages\PyQt5 et le fichier d:\pyenvqt5\Lib\site-packages\sip.pyd (ne pas oublier!) dans un répertoire temporaire
    - je désinstalle PyQt5
    - je remets à sa place initiale d:\pyenvqt5\Lib\site-packages\PyQt5 et d:\pyenvqt5\Lib\site-packages\sip.pyd

    Dans les 2 cas, il faut corriger l'emplacement et les adresses de qt.conf qui sont incorrectes, sinon, les fichiers de traduction ainsi que les pilotes SGBDR ne sont pas trouvés: ce fichier qt.conf doit se trouver dans le répertoire de python.exe, et contenir (mettre le bon répertoire PyQt4 ou PyQt5):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [Paths]
    Prefix = ../Lib/site-packages/PyQt4
    Binaries = .
    Plugins = plugins
    Translations = translations
    Et c'est tout!

    Si j'ai à lancer un programme PyQt4 "monprogramme.pyw", je le fais comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d:\pyenvqt4\Scripts\pythonw.exe monprogramme.pyw
    Et si c'est un programme PyQt5:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d:\pyenvqt5\Scripts\pythonw.exe monprogramme.pyw
    J'ai essayé différents programmes en PyQt4, ainsi que les démos de PyQt4 et PyQt5: pas de problème à condition, bien sûr, d'utiliser le bon python!

    J'ai configuré eclipse + Pydev avec 2 workspaces, l'un avec d:\pyenvqt4\Scripts\python.exe et l'autre avec d:\pyenvqt5\Scripts\python.exe: tout se passe bien.

    J'ai essayé d'installer un module avec pip dans l'un et l'autre environnement (puisqu'ils ont chacun un pip): ça marche.

    Les modules installés dans le python de base c:\python34 sont mis à disposition des 2 environnements virtuels.

    Bref, jusqu'à présent, je n'ai pas trouvé d'inconvénient à cette manière de travailler, à part qu'il ne faut pas se tromper de python selon ce qu'on veut faire.

    Vois-tu un problème auquel je n'aurais pas pensé?

    Merci!
    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
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par tyrtamos Voir le message
    Principe général: je me suis dit que l'inscription au registre lors de l'installation de PyQt4 et PyQt5 n'était utile que pour l'installation et non l'exécution.
    Tout à fait: lors de l'exécution ça passe par file system et infos stockés dans des fichiers en dur. Des trucs sur lesquels Python pourra compter quel que soit l'environnement d'execution (l'OS).

    Citation Envoyé par tyrtamos Voir le message
    Bref, jusqu'à présent, je n'ai pas trouvé d'inconvénient à cette manière de travailler, à part qu'il ne faut pas se tromper de python selon ce qu'on veut faire.

    Vois-tu un problème auquel je n'aurais pas pensé?
    Ca me semble correct mais c'est laborieux et il y a tellement d'étapes que çà fait peur...
    In fine, çà revient à mettre à jour la registry via de multiples installations/desinstallations.
    Si tu préféreres y aller par ce sentier sinueux là, pourquoi pas?
    L'essentiel est d'arriver à construire un truc qui fonctionne et dans lequel on sera "confiant".

    Citation Envoyé par tyrtamos Voir le message
    Mais comme je n'aime pas trop bidouiller dans les fichiers de registres, j'ai essayé de trouver une manip qui ne le nécessite pas. Je reviendrai au code si je n'y arrive pas.
    Il y a pas mal de bibliothèques qui ont un installer qui se basent sur les informations présentes dans la registry. Et comme elles ne servent presque qu'à çà, difficile de faire autrement que de mettre à jour la registry. Mais ce n'est pas "bidouille" lorsqu'on sait ce qu'on fait (et le défaire).

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

  5. #5
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    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 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Merci wiztricks!

    Je creuse un peu le code que tu me proposes pour bien comprendre ce qu'il fait.

    Quand on lance ce code (ce que je n'ai pas encore fait), il n'exécute, sauf en cas d'erreur, que la fonction RegisterPy, qui fait (j'y mets ce qui correspond à ma config):

    - ouvre l'item du registre: "HKEY_LOCAL_MACHINE\SOFTWARE\Python\Pythoncore\3.4\" (le crée s'il n'existe pas, ce qui est mon cas)

    - y ajoute la clé "InstallPath" avec la valeur "E:\Python34"

    - y ajoute la clé "PythonPath" avec la valeur "E:\Python34;E:\Python34\Lib\;E:\Python34\DLLs\"

    - et bien sûr, ferme l'item de registre ainsi modifiée.

    Mais je ne vois pas en quoi cet ajout peut résoudre mon problème PyQt4 / PyQt5: peux-tu m'en dire plus?
    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

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Mais je ne vois pas en quoi cet ajout peut résoudre mon problème PyQt4 / PyQt5: peux-tu m'en dire plus?
    On crée le venv et on lance le code depuis ce Python là.
    Il devient le "Python 3.4".
    On installe les packages récalcitrants (dans le venv).

    Puis on peut remettre la registry dans l'état "initial" en exécutant le script avec le Python3.4 "normal".

    - W

    *edit* Oops, j'ai retrouvé mes notes. En fait, dans ce cas, c'est la plutôt clé PyQtX\PyV.n\InstallPath qui fout la grouille si l'installer y trouve ce qu'il cherche.
    Le hack est de la mettre à "vide" le temps d'installer l'autre PyQtX puis la remettre à sa valeur. En fait pour ce kit là, bricoler la registry pour qu'il trouve le Python 3.4 qu'on veut n'est pas indispensable: il fait partie des "bon kits" qui proposent de choisir le répertoire d'installation.
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    à vous deux,

    As-tu envisager la mise en place d'une VM ? ça simplifierai grandement la tâche je pense.
    Sinon il y a aussi l'option Python portable sur une clé USB par exemple. Il faut tromper Windaub afin de faire l'installation correctement mais normalement ça fonctionne pas trop mal :
    1. installer la version Python "Just for me" sur la clé ;
    2. installer la version PyQt que l'on veut être portable sur la clé ;
    3. installer la même version sur le PC ;
    4. déconnecter la clé ;
    5. supprimer PyQt du PC ;
    6. installer la bonne version de PyQt sur le PC.


    au final ça donne ça :
    Nom : doublePython.png
Affichages : 443
Taille : 986,3 Ko

    @+

    J
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  8. #8
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    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 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour Jiyuu,

    Merci pour tes idées!

    Citation Envoyé par Jiyuu Voir le message
    As-tu envisager la mise en place d'une VM ? ça simplifierai grandement la tâche je pense.
    Qu'est-ce que tu entends par "VM"?

    Citation Envoyé par Jiyuu Voir le message
    Sinon il y a aussi l'option Python portable sur une clé USB par exemple. Il faut tromper Windaub afin de faire l'installation correctement mais normalement ça fonctionne pas trop mal :
    Je connais bien 2 pythons portables pour les utiliser couramment: portablepython et winpython. Mais j'avoue que je n'utilise pas ton astuce de "python pour moi seul" parce que, ayant essayé, je me suis aperçu qu'il avait mis des infos dans le registre pendant l'installation. Et je veux exclure tout risque de mélange.

    J'utilise les 2 pythons portables pour 2 utilisations précises qui me donnent toutes satisfactions:
    • solution alternative à cx_freeze pour la distribution d'un programme Python sur une clé USB
    • avoir sous Windows en même temps Python 2 et Python 3. J'ai d'ailleurs sur mon bureau 2 icônes de eclipse/pydev, l'une pour Python 2 (le Python portable) et l'autre pour Python 3 (le Python installé).


    Mais il y a un problème avec les pythons portables en question: ils sont richement dotés au départ, mais ils sont verrouillés: on ne peut plus installer de modules supplémentaires, sauf des modules simples écrits en Python pur. Par exemple, j'installe facilement PyPDF2 (découpage ou regroupement de fichiers pdf) mais certainement pas PyQt5... Et aucun d'entre eux n'a de prévision pour une version avec PyQt5.

    Et dans la manip que tu donnes, je ne vois pas comment cela peut répondre à mon problème: avoir en même temps PyQt4 et PyQt5 sur le même PC Windows. Mais je n'ai peut-être pas bien compris: peux-tu détailler un peu?

    Et je reste ouvert à toute solution!
    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

  9. #9
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Re,

    Citation Envoyé par tyrtamos Voir le message
    avoir en même temps PyQt4 et PyQt5 sur le même PC Windows
    Avant tout, question : ton but est bien de pouvoir tester PyQt5 sans être obligé d'investir dans un nouveau PC (je pousse à l’extrême là) et surtout de tout avoir "sous le clavier" ?

    Citation Envoyé par tyrtamos Voir le message
    Qu'est-ce que tu entends par "VM"?
    Machine virtuelle via VirtualBox par exemple.

    Citation Envoyé par tyrtamos Voir le message
    Je connais bien 2 pythons portables pour les utiliser couramment: portablepython et winpython. Mais j'avoue que je n'utilise pas ton astuce de "python pour moi seul" parce que, ayant essayé, je me suis aperçu qu'il avait mis des infos dans le registre pendant l'installation. Et je veux exclure tout risque de mélange.
    C'est effectivement un risque et c'est d'ailleurs pour cela qu'il faut absolument passer par une installation sur la clé, puis sur le PC, enlever la clé et effacer l'installation du PC histoire de nettoyer un peu, mais sûrement pas tout.
    Par contre l'installation sur la clé est ensuite fonctionnelle sur un autre PC sans trace de Python. J'ai déjà testé et ça fonctionne plutôt bien.

    Citation Envoyé par tyrtamos Voir le message
    Et dans la manip que tu donnes, je ne vois pas comment cela peut répondre à mon problème: avoir en même temps PyQt4 et PyQt5 sur le même PC Windows. Mais je n'ai peut-être pas bien compris: peux-tu détailler un peu?
    Si j'ai bien compris ta demande ça te permets en réalité de pouvoir essayer sous windows deux versions de PyQt sans tout désinstaller.

    Hors sujet : en allant chercher les binaires sur riverbank je me suis aperçu qu'il y avait 2 versions de PyQt4 : une basée sur Qt4 l'autre sur Qt5. Celle de Qt5 possède QtQuick 2 ?

    Citation Envoyé par tyrtamos Voir le message
    Et je reste ouvert à toute solution!
    Ça ne répondra pas vraiment à l'intégralité de ton souhait mais ça te permettrait d'avoir les deux versions sans difficulté : abandonner Windaube et passer à 100% sur Linux
    Y en a une 2ème mais c'est plus du tout ce que tu veux : mets toi à Qt Quick / QML ... tu oublieras très vite PyQt traditionnel
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  10. #10
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    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 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour Jiyuu,

    Citation Envoyé par Jiyuu Voir le message
    Si j'ai bien compris ta demande ça te permets en réalité de pouvoir essayer sous windows deux versions de PyQt sans tout désinstaller.
    Oui: je veux continuer à travailler sous pyQt4, mais je veux avoir en plus sur le même PC possibilité de le faire sous PyQt5. L'objectif est, bien sûr, de préparer une transition progressive: il faudra bien passer à PyQt5 un jour ou l'autre pour toutes mes applications! Mais je veux le faire "dans l'ordre et la méthode" comme je suis en train de le faire pour la transition Python 2 => Python 3 (j'ai même fait un programme PyQt4 pour automatiser le convertisseur 2to3!).

    A noter que le binaire de PyQt5 pour Windows contient bien QtQuick, ainsi que tous les outils de travail habituels (assistant, designer, linguist, ...) sauf QtCreator qu'il faudra installer séparément. J'ai commencé à regarder QtQuick sur ton 1er tuto, mais je n'ai pas encore tout compris.

    Actuellement, j'ai bien PyQt5 d'installé sur... Linux Mint (issu d'Ubuntu) qui fonctionne sous Virtualbox qui tourne sous Windows 8.1. J'ai toujours entre 5 et 10 Linux sous Virtualbox. Avant, je travaillais avec VMWare qui marchait bien aussi. Mais j'ai des petits problèmes actuellement avec PyQt5 sous Linux: j'ai des flopées de warnings avec opengl: je suppose que ça vient de l'installation sous Virtualbox justement. Et ceci même avec la case "accélération 3D" cochée. Cependant, les programmes fonctionnent! Mais même si ce problème n'existait pas, ce n'est pas aussi pratique que si j'avais PyQt4 ET PyQt5 au bout de la souris sur le même OS...

    Je suis aussi à l'aise sous Linux que sous Windows, mais contrairement à de nombreux fans de Linux, je ne déteste pas Windows, et j'en suis même assez content, y compris de la version 8.1 que je fais fonctionner comme la version 7.

    Bref, pour l'instant, la solution avec 2 environnements virtuels Python, l'un avec PyQt4 et l'autre avec PyQt5, fonctionne plutôt bien. Je vais travailler un peu avec pour voir s'il y a des inconvénients. Si c'est ok, ce problème serait résolu, et je ferais probablement un tuto sur mon site et ... sur mon blog (en attente d'un wiki? ).
    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 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut Tyrtamos,

    as-tu vu/lu/compris la petite note sur la clef PyQtX\PyV.n\InstallPath ajoutée à mon dernier post.

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

  12. #12
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut


    Ooohh, ce n'est pas que je déteste windows, c'est juste que lorsqu'un OS (payant) sur une machine donnée crash 1 à 2 fois par jour alors que tu es en plein boulot et qu'un autre OS (gratuit et OpenSource) sur la même machine ne pose aucun souci... t'en viens à te poser des questions.
    Et quand tu de dis, "allez il n'y a que les imbéciles qui ne changent pas d'avis" et que tu te lances dans une nouvelle installation du premier OS sur la même machine et que ça recommence comme en 40, et bien tu préfères rester un imbécile
    Bizarrement, très peu de souci avec mon Windows on VB.

    Pour revenir à ta demande, si tu trouves la solution qui convient, c'est tant mieux.
    Pour la présence de Qt Quick je me posais surtout la question concernant la version PyQt4 basée sur Qt5 ... je comprends pas trop l'intérêt (j'avoue ne pas avoir trop cherché non plus).
    Pour Qt Quick, s'il y a des choses pas claires sur mon premier tuto, hésite pas à me le faire savoir par MP, je verrai pour être plus précis si besoin.
    Pour le wiki, j'ai pas encore beaucoup avancé : j'en suis en fait au stade où j'ai demandé quelques modifs, mais toujours rien... il va falloir que je m'y remette rapidos .

    ++

    J
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  13. #13
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    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 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour wiztricks,

    Citation Envoyé par wiztricks Voir le message
    as-tu vu/lu/compris la petite note sur la clef PyQtX\PyV.n\InstallPath ajoutée à mon dernier post.
    Bien sûr! Je lis tout ce que tu m'écris avec beaucoup d'intérêt, mais je ne suis pas toujours capable d'en tirer partie.

    Ainsi, où est ce fameux "PyQtX\PyV.n\InstallPath"? J'ai cherché avec regedit: j'ai plus de 50 "PyQt4"!

    Mais j'en ai trouvé un qui pourrait convenir (Windows 8.1):

    "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\PyQt4\Py3.4\InstallPath" ===> "C:\Python34" (REG_SZ)

    Est-ce celui-là?

    Si, par exemple:
    - je désinstalle PyQt4 du Python normal "C:\Python34": cet item de registre devrait disparaître?
    - j'installe ensuite PyQt4 sur l'environnement virtuel D:\pyenvqt4 => l'item de registre devrait réapparaître avec l'adresse D:\pyenvqt4
    - j'installe ensuite PyQt5 sur l'environnement virtuel D:\pyenvqt5: le programme d'installation devrait refuser parce qu'il trouve dans le registre que PyQt4 est déjà installé. Alors, comment dois-je modifier l'item de registre pour que le programme d'installation de PyQt5 accepte tout de même: en mettant l'adresse à chaine vide?

    Comme dit l'autre, après tes réponses, j'ai souvent autant de questions qu'avant, mais comme ce ne sont pas les mêmes: j'avance!

    Merci!
    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

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Dans HKEY_LOCAL_MACHINE\SOFTWARE, les clefs:
    • PyQt4\Py3.4\InstallPath
    • PyQt5\Py3.4\InstallPath

    correspondent aux versions 64 bits.

    Celles dans HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node correspondent aux versions 32 bits.

    Après avoir installé PyQt4, la valeur de la clé sera le répertoire de la racine du Python dans lequel il a été installé.
    Tu la modifies pour mettre une chaîne vide.

    Alors tu installes PyQt5

    Je ne suis pas sûr que ces clefs servent à autre chose qu'à "bloquer" l'installation.
    Mais j'ai remis la valeur initiale.
    Est-ce plus clair?

    - W
    PS: Je n'ai pas écrit de code pour automatiser çà car je n'ai pas pris le temps de voir ce qu'il se passait si on installait PyQt sur plusieurs versions de Python différentes - je n'en ai pas besoin.
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  15. #15
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    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 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Est-ce plus clair?
    Merci: ça commence!

    Mettre à "chaine vide" l'adresse en question dans le registre: ça, c'est facile, on le fait facilement à la main avec regedit.

    Une question cependant: j'aurais réussi à installer 2 versions de PyQt en même temps (la 4 et la 5). Mais si je veux en désinstaller une pour faire une mise à jour, dois-je m'assurer que l'item de registre a la bonne adresse? C'est à dire: est-ce que le programme de désinstallation utilise cette adresse?
    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

  16. #16
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par tyrtamos Voir le message
    C'est à dire: est-ce que le programme de désinstallation utilise cette adresse?
    Lorsque la désinstallation se lance, çà prompte "uninstalling from" avec le répertoire récupéré depuis cette clef - on peut la modifier pour s'en assurer.
    Donc oui d'autant que si on met un fake çà fait juste comme si et sans aucun message d'erreur.

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

  17. #17
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    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 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Donc oui
    Avec tout ça, je devrais pouvoir me débrouiller.

    Merci wiztricks!


    Citation Envoyé par Jiyuu Voir le message
    Ooohh, ce n'est pas que je déteste windows, c'est juste que lorsqu'un OS (payant) sur une machine donnée crash 1 à 2 fois par jour alors que tu es en plein boulot et qu'un autre OS (gratuit et OpenSource) sur la même machine ne pose aucun souci... t'en viens à te poser des questions.
    J'ai déjà entendu ça de la part des fans de Linux. Mais ce n'est pas possible, sauf panne hard: si ça plantait aussi souvent, aucune entreprise ne l'accepterait, et windows n'existerait plus (et Microsoft non plus)...

    J'ai une lourde expérience de Windows, depuis la 1ère version dans les années 80 (ce n'était pas encore un OS!), et je constate que mes Windows plantent de façon rarissime. Disons une fois par an, et il y a le plus souvent une bonne raison. La dernière fois, c'était il y a 3 mois: j'avais 2 logiciels de surveillance en tâche de fond qui s'auto-bloquaient: une fois l'un d'entre eux désinstallé, c'était fini. J'ai eu l'année dernière un vieux PC avec XP qui plantait souvent: J'ai mis Linux: pareil! C'était une panne de carte mère.

    Mais ça ne m'empêche pas d'aimer Linux! Pour l'instant, je les ai en virtuel, mais je cherche une solution avec un vrai PC pour éviter les problèmes d'écran et accélérer l'affichage.
    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

  18. #18
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    J'ai déjà entendu ça de la part des fans de Linux. Mais ce n'est pas possible, sauf panne hard: si ça plantait aussi souvent, aucune entreprise ne l'accepterait, et windows n'existerait plus (et Microsoft non plus)...
    Je sais que cela peut paraître dingue, mais c'est pourtant la réalité. J'ai été sous Win7, j'ai acheté une licence Win8 (que j'ai adoré, tu pourras le voir sur certains topic où je suis l'un des rares défenseurs de cette version) et suite à une MAJ (en juillet 2013) tout à foiré. Pendant 2 mois j'ai du supporter, sur mon portable du boulot, des plantages quotidiens. J'ai par la suite testé Mint puis Manjaro et depuis rien ... Windows est un bon OS, comme tu le dis, c'est peut-être un problème hard... n'empêche que c'est super gonflant.
    Je ne suis peut-être pas très explicite mais quand je dis "Bizarrement, très peu de souci avec mon Windows on VB.", c'est bien que je concède des qualités à cet OS.


    PS : j'ai créé un nouveau topic concernant QML afin de ne pas dévier du sujet principal de celui-ci.
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

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

    Je confirme: les 2 solutions pour avoir PyQt4 et PyQt5 en même temps sous Windows grâce aux environnements virtuels:

    • avec installation et désinstallation de PyQt4 et PyQt5

    • avec modification manuelle du registre concernant PyQt4 et PyQt5 (merci à wiztricks)

    fonctionnent très bien!

    Il ne me reste plus qu'à faire un tuto...

    Problème résolu!
    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

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

    J'ai le plaisir de vous informer que le tuto est terminé sur mon site web:

    http://python.jpvweb.com/mesrecettes...5_sous_windows

    Ainsi que le blog chez developpez:

    http://www.developpez.net/forums/blo...-sous-windows/
    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.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 07/10/2009, 16h02
  2. Réponses: 1
    Dernier message: 03/10/2008, 09h57
  3. Réponses: 2
    Dernier message: 17/12/2007, 01h21
  4. [PyQt] Mon appli se fige avec les sockets
    Par neeux dans le forum PyQt
    Réponses: 3
    Dernier message: 08/01/2006, 21h57
  5. gérer le clic gauche-droite en même temps de la sou
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2002, 22h52

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