Warning: Undefined array key "DOKU_PREFS" in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/common.php on line 2082
pyqt4_et_pyqt5_sous_windows [Les recettes Python de Tyrtamos]

Outils pour utilisateurs

Outils du site


pyqt4_et_pyqt5_sous_windows

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
pyqt4_et_pyqt5_sous_windows [2015/04/16 07:38]
tyrtamos
pyqt4_et_pyqt5_sous_windows [2015/04/16 08:11]
tyrtamos
Ligne 28: Ligne 28:
 La difficulté principale est que Riverbank a ajouté une sécurité: lorsque PyQt4 est installé, la tentative d'installer **en plus** PyQt5 échoue, parce que le programme d'installation trouve dans le registre de Windows qu'un PyQt est déjà présent. Le contraire est vrai aussi si on veut installer PyQt4 alors que PyQt5 est déjà installé. On va voir comment contourner cet obstacle! La difficulté principale est que Riverbank a ajouté une sécurité: lorsque PyQt4 est installé, la tentative d'installer **en plus** PyQt5 échoue, parce que le programme d'installation trouve dans le registre de Windows qu'un PyQt est déjà présent. Le contraire est vrai aussi si on veut installer PyQt4 alors que PyQt5 est déjà installé. On va voir comment contourner cet obstacle!
  
-Cette méthode est issue d'une discussion sur le forum Python de developpez (merci à wiztricks!).+Cette méthode est issue d'une discussion sur le forum Python de developpez (merci à wiztricks!): [[http://www.developpez.net/forums/f96/autres-langages/python-zope/]].
  
-A noter: on a considéré ici qu'on a déjà PyQt4 d'installé "normalement" et qu'on crée un environnement virtuel pour mettre PyQt5, mais on peut aussi faire le contraire: PyQt5 installé normalement et PyQt4 dans l'environnement virtuel. Ce sera d'ailleurs la solution future la plus pratique lorsque PyQt5 sera la bibliothèque "normale" et qu'on voudra avoir PyQt4 "en plus" pour essayer les anciens programmes.  +A noter: on considére ici qu'on a déjà PyQt4 d'installé "normalement" et qu'on crée un environnement virtuel pour mettre PyQt5 en plus, mais on peut aussi faire le contraire: PyQt5 installé normalement et PyQt4 dans l'environnement virtuel. Ce sera d'ailleurs la solution future la plus pratique lorsque PyQt5 sera la bibliothèque "normale" et qu'on voudra avoir PyQt4 "en plus" pour essayer les anciens programmes.  
  
 ===== Création et utilisation de l’environnement virtuel ===== ===== Création et utilisation de l’environnement virtuel =====
  
-Nous avons, par exemple, le Python 3.4 installé ici: c:\python34. Il contient déjà PyQt4, ainsi que les modules généraux par rapport aux utilisations qu'on en a, par exemple: scipy, numpy, matplotlib, cython, cx_freeze, etc... +Nous avons, par exemple, le Python 3.4 installé ici: C:\Python34. Il contient déjà PyQt4, ainsi que les modules externes pour couvrir les utilisations qu'on en a, par exemple: scipy, numpy, matplotlib, cython, cx_freeze, etc... 
  
-On va créer un environnement virtuel dans un répertoire nommé (par exemple) d:\pyenvqt5 comme suit avec la console de Windows (cmd.exe):+On va créer un environnement virtuel dans un répertoire nommépar exemple, D:\pyenvqt5 comme suit avec la console de Windows (cmd.exe):
  
 <code> <code>
-c:\python34\python.exe -m venv d:\pyenvqt5+C:\Python34\python.exe -m venv D:\pyenvqt5
 </code> </code>
  
-On va faire une petite correction du fichier pyvenv.cfg qui se trouve maintenant à la racine de ce répertoire: mettre include-system-site-packages à "true" au lieu de "false": l'avantage est que les programmes lancés sous cet environnement virtuel auront ainsi accès aux modules externes installés dans le python normal (c:\python34).+On va faire une petite correction du fichier pyvenv.cfg qui se trouve maintenant à la racine de ce répertoire: mettre include-system-site-packages à "true" au lieu de "false": l'avantage est que les programmes lancés sous cet environnement virtuel auront ainsi accès aux modules externes installés dans le python normal (C:\Python34).
  
 Ça y est: on a l'environnement virtuel destiné à recevoir PyQt5! Ça va, ce n'était pas trop douloureux? ;-) Ça y est: on a l'environnement virtuel destiné à recevoir PyQt5! Ça va, ce n'était pas trop douloureux? ;-)
Ligne 49: Ligne 49:
  
 <code> <code>
-d:\pyenvqt5\Scrips\python.exe +D:\pyenvqt5\Scrips\python.exe 
-d:\pyenvqt5\Scrips\pythonw.exe+D:\pyenvqt5\Scrips\pythonw.exe
 </code> </code>
  
 On voit aussi qu'il y a au même endroit pip et easy-install pour installer d'autres modules externes. On voit aussi qu'il y a au même endroit pip et easy-install pour installer d'autres modules externes.
  
-On voit enfin qu'il y a le répertoire "Lib\site-packages" qui pourra accueillir des modules installés, et en particulier notre PyQt5. Ainsi d'ailleurs que n'importe quel autre module qu'on voudrait installer en plus!+On voit enfin qu'il y a le répertoire "Lib\site-packages" qui pourra accueillir des modules externes installés, et en particulier notre PyQt5. Ainsi d'ailleurs que n'importe quel autre module qu'on voudrait installer en plus!
  
 L'utilisation est super-simple: il suffit pour exécuter un programme python quelconque "monprogramme.py" avec le Python de l'environnement virtuel de faire dans une console cmd: L'utilisation est super-simple: il suffit pour exécuter un programme python quelconque "monprogramme.py" avec le Python de l'environnement virtuel de faire dans une console cmd:
  
 <code python> <code python>
-d:\pyenvqt5\Scripts\python.exe monprogramme.py+D:\pyenvqt5\Scripts\python.exe monprogramme.py
 </code> </code>
  
-Pour installer des modules complémentaires dans l'emplacements: d:\pyenvqt5, il suffit, selon la méthode d'installation:+Pour installer des modules complémentaires soit dans le python normal C:\Python34, soit dans l'environnement virtuel D:\pyenvqt5, il suffit, selon la méthode d'installation:
   * d'utiliser le bon pip (l'environnement virtuel a le sien),    * d'utiliser le bon pip (l'environnement virtuel a le sien), 
-  * ou le bon python.exe si on utilise le setup.py: "d:\pyenvqt5\Scripts\python.exe setup.exe install",  +  * ou le bon python.exe si on utilise le setup.py: celui de C\Python34 ou celui de D:\pyenvqt5\Scripts exécutera le "setup.py install" du programme à installer,  
-  * ou, avec les binaires exe, de donner la bonne adresse d'installation.+  * ou, avec les binaires exe, de donner la bonne adresse d'installation dans le programme d'installation.
  
 Pour détruire l'environnement virtuel, après avoir désinstallé tout ce qu'on y a mis, on fait: Pour détruire l'environnement virtuel, après avoir désinstallé tout ce qu'on y a mis, on fait:
  
 <code> <code>
-c:\python34\python.exe -m venv --clear d:\pyenvqt5+C:\Python34\python.exe -m venv --clear D:\pyenvqt5
 </code> </code>
  
Ligne 87: Ligne 87:
 Le PyQt5 en binaire à installer pour Windows est chez riverbank: [[http://www.riverbankcomputing.co.uk/software/pyqt/intro]]. Le PyQt5 en binaire à installer pour Windows est chez riverbank: [[http://www.riverbankcomputing.co.uk/software/pyqt/intro]].
  
-On **//installe PyQt5 dans d:\pyenvqt5//**. Attention: au début de l'installation, il y a un mode "Full" qui est proposé qui ne convient pas: il faut sélectionner "**Custom**": c'est ça qui permettra de choisir l'adresse où il faut installer qui est "d:\pyenvqt5".+On **//installe PyQt5 dans D:\pyenvqt5//**. Attention: au début de l'installation, il y a un mode "Full" qui est proposé qui ne convient pas: il faut sélectionner "**Custom**": c'est ça qui permettra de choisir l'adresse où il faut installer qui est "D:\pyenvqt5".
  
 Mais ça ne marche pas: il trouve l'installation précédente de PyQt4 dans le registre et refuse d'aller plus loin. Mais ça ne marche pas: il trouve l'installation précédente de PyQt4 dans le registre et refuse d'aller plus loin.
Ligne 93: Ligne 93:
 En fait, l'installation de PyQt4 a créé dans le registre les clés suivantes: "PyQt4\py3.4\InstallPath" avec la valeur: "C:\Python34". Sous Windows 8.1 64 bits et Python 3.4 32 bits, ces clés se trouvent dans "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node". Pour d'autres configurations, cherchez: le principe est le même.  En fait, l'installation de PyQt4 a créé dans le registre les clés suivantes: "PyQt4\py3.4\InstallPath" avec la valeur: "C:\Python34". Sous Windows 8.1 64 bits et Python 3.4 32 bits, ces clés se trouvent dans "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node". Pour d'autres configurations, cherchez: le principe est le même. 
  
-Alors, on exécute l'éditeur de registre "regedit.exe", et avec lui, **//on va mettre à "chaine vide"//** cette adresse "C:\Python34"! Grâce à ça, l'installation de PyQt5 dans d:\pyenvqt5 se déroulera sans broncher. +Alors, on exécute l'éditeur de registre "regedit.exe", et avec lui, **//on va mettre à "chaine vide"//** cette adresse "C:\Python34"! Grâce à ça, l'installation de PyQt5 dans D:\pyenvqt5 se déroulera sans broncher. 
  
 Attention: il faudra **//remettre cette même adresse à "C:\Python34" après l'installation de PyQt5//**, parce que la désinstallation de PyQt4 (pour mise à jour par exemple) aura absolument besoin de cette adresse. Attention: il faudra **//remettre cette même adresse à "C:\Python34" après l'installation de PyQt5//**, parce que la désinstallation de PyQt4 (pour mise à jour par exemple) aura absolument besoin de cette adresse.
Ligne 109: Ligne 109:
 </code> </code>
  
-Pour le PyQt5 de d:\pyenvqt5, le qt.conf sera dans d:\pyenvqt5\Scripts et contiendra:+Pour le PyQt5 de D:\pyenvqt5, le qt.conf sera dans D:\pyenvqt5\Scripts et contiendra:
  
 <code> <code>
Ligne 132: Ligne 132:
  
 <code> <code>
-d:\pyenvqt5\Scripts\pythonw.exe d:\pyenvqt5\Lib\site-packages\PyQt5\examples\qtdemo\qtdemo.pyw +D:\pyenvqt5\Scripts\pythonw.exe D:\pyenvqt5\Lib\site-packages\PyQt5\examples\qtdemo\qtdemo.pyw 
 </code> </code>
  
Ligne 149: Ligne 149:
   * un double clic sur un fichier .pyw appellera C:\Python34\pythonw.exe.    * un double clic sur un fichier .pyw appellera C:\Python34\pythonw.exe. 
    
-Seuls les programmes python nécessitant PyQt5 devront être lancés impérativement par le python de l'environnement virtuel: d:\pyenvqt5\Scripts\python.exe pour les programmes .py et d:\pyenvqt5\Scripts\pythonw.exe pour les programmes .pyw.+Seuls les programmes python nécessitant PyQt5 devront être lancés impérativement par le python de l'environnement virtuel: D:\pyenvqt5\Scripts\python.exe pour les programmes .py et D:\pyenvqt5\Scripts\pythonw.exe pour les programmes .pyw.
  
 **__Pour Eclipse + pydev:__** **__Pour Eclipse + pydev:__**
  
-On peut avoir 2 workspaces (2 répertoires d:\pydevqt4 et d:\pydevqt5) pour porter les projets de PyQt4 pour l'un et PyQt5 pour l'autre. Et on a sur le bureau 2 icônes de lancement: eclipse_qt4 et eclipse_qt5 avec les workspaces comme argument précédé de l'option "-data":+On peut avoir 2 workspaces (2 répertoires D:\pydevqt4 et D:\pydevqt5) pour porter les projets de PyQt4 pour l'un et PyQt5 pour l'autre. Et on a sur le bureau 2 icônes de lancement: eclipse_qt4 et eclipse_qt5 avec les workspaces comme argument précédé de l'option "-data":
  
 <code> <code>
-C:\eclipse\eclipse.exe -data d:\pydevqt4 +C:\eclipse\eclipse.exe -data D:\pydevqt4 
-C:\eclipse\eclipse.exe -data d:\pydevqt5+C:\eclipse\eclipse.exe -data D:\pydevqt5
 </code>   </code>  
  
 Pour chacun de ces workspaces, on fait reconnaître le bon interpréteur Python: Pour chacun de ces workspaces, on fait reconnaître le bon interpréteur Python:
-  * pour le workspace d:\pydevqt4, l'interpréteur python est: C:\Python34\python.exe +  * pour le workspace D:\pydevqt4, l'interpréteur python est: C:\Python34\python.exe 
-  * pour le workspace d:\pydevqt5, l'interpréteur python est: d:\pyenvqt5\Scripts\python.exe+  * pour le workspace D:\pydevqt5, l'interpréteur python est: D:\pyenvqt5\Scripts\python.exe
  
 Avec la touche "Apply", pydev cherche les adresses supplémentaires: vérifiez qu'il les a toutes et dans le bon ordre, sinon, modifiez-les: Avec la touche "Apply", pydev cherche les adresses supplémentaires: vérifiez qu'il les a toutes et dans le bon ordre, sinon, modifiez-les:
  
-Pour le workspace d:\pydevqt4 pour le développement avec PyQt4:+Pour le workspace D:\pydevqt4 pour le développement avec PyQt4:
  
 <code> <code>
-c:\python34 +C:\Python34 
-c:\python34\DLLs +C:\Python34\DLLs 
-c:\python34\lib +C:\Python34\lib 
-c:\python34\Lib\site-packages+C:\Python34\Lib\site-packages
 </code> </code>
  
-Et pour le workspace d:\pydevqt5 pour le développement avec PyQt5:+Et pour le workspace D:\pydevqt5 pour le développement avec PyQt5:
  
 <code> <code>
-d:\pyenvqt5 +D:\pyenvqt5 
-d:\pyenvqt5\Lib +D:\pyenvqt5\Lib 
-d:\pyenvqt5\Lib\site-packages +D:\pyenvqt5\Lib\site-packages 
-c:\python34 +C:\Python34 
-c:\python34\DLLs +C:\Python34\DLLs 
-c:\python34\lib +C:\Python34\lib 
-c:\python34\Lib\site-packages+C:\Python34\Lib\site-packages
 </code> </code>
  
Ligne 210: Ligne 210:
 **__Pour idle:__** **__Pour idle:__**
  
-On peut toujours travailler avec l'idle du Python de base c:\python34, mais, bien sûr, seul PyQt4 sera disponible à l'importation:+On peut toujours travailler avec l'idle du Python de base C:\Python34, mais, bien sûr, seul PyQt4 sera disponible à l'importation:
  
 <code> <code>
Ligne 219: Ligne 219:
  
 <code> <code>
-d:\pyenvqt5\Scripts\pythonw.exe c:\Python34\Lib\idlelib\idle.pyw+D:\pyenvqt5\Scripts\pythonw.exe C:\Python34\Lib\idlelib\idle.pyw
 </code> </code>
  
Ligne 233: Ligne 233:
 C:\Python34\Lib\site-packages\PyQt4\pyrcc4.exe C:\Python34\Lib\site-packages\PyQt4\pyrcc4.exe
  
-d:\pyenvqt5\Lib\site-packages\PyQt5\assistant.exe +D:\pyenvqt5\Lib\site-packages\PyQt5\assistant.exe 
-d:\pyenvqt5\Lib\site-packages\PyQt5\designer.exe +D:\pyenvqt5\Lib\site-packages\PyQt5\designer.exe 
-d:\pyenvqt5\Lib\site-packages\PyQt5\linguist.exe +D:\pyenvqt5\Lib\site-packages\PyQt5\linguist.exe 
-d:\pyenvqt4\Lib\site-packages\PyQt5\pyuic5.bat +D:\pyenvqt4\Lib\site-packages\PyQt5\pyuic5.bat 
-d:\pyenvqt4\Lib\site-packages\PyQt5\pyrcc5.exe+D:\pyenvqt4\Lib\site-packages\PyQt5\pyrcc5.exe
 </code> </code>
  
pyqt4_et_pyqt5_sous_windows.txt · Dernière modification: 2015/04/17 05:55 de tyrtamos