Comment installer des libs Python externes dans QGIS ?


QGIS vient avec son Python perso, séparé du reste du système. Du coup si vous faites un pip install une_lib, elle s’installera sur le Python du système, et non de QGIS. Si vous voulez utiliser requests ou arrow pour vos scripts, c’est relou, il faut les télécharger, les extraire, et les mettre à la main sur le PYTHONPATH.

Il est pourtant possible de manipuler interpréteur Python de QGIS, c’est juste que ça saute pas aux yeux :) Ca va nous permettre d’installer pip (si ça ne vous parle par, on a un article pour ça), à la mano, à l’ancienne, comme un homme qui fait ses cartes à la main sur des calques avec des lames de rasoirs en guise de gomme.

D’abord, trouver où il est niché. Sur ma machine, il est dans “C:\Program Files\QGIS Wien\bin\python.exe”.

Si vous le démarrer, vous noterez qu’il plante en prétextant qu’il ne trouve pas le module site. Il faut donc lui dire où sont installées les libs en faisant:

set PYTHONHOME=chemin vers l'installation de Python de QGIS.

Chez moi ça donne :

set PYTHONHOME=C:\Program Files\QGIS Wien\apps\Python27\

Ainsi vous pouvez lancer C:\Program Files\QGIS Wien\bin\python.exe dans la console et obtenir le shell Python de QGIS.

Ensuite, il faut télécharger ez_tools.py qui va nous servir à installer setuptools dans le Python voulu. C’est un script Python (meta meta ! \^O^\), qu’on lance avec l’interpréteur qui nous intéresse, dans mon cas:

"C:\Program Files\QGIS Wien\bin\python.exe" C:\Users\sam\Downloads\ez_setup.py

Il va télécharger depuis internet tout un tas de trucs, et installer tout un tas de machins. Parfois, ça va râler parce que vous n’avez pas les droits. Dans ce cas, lancez la console en mode admin, et faites un cd sur le bureau avant de lancer la commande.

Bien, on a setuptools, qui a du rajouter la commande easy_install. Chez moi elle est dans “C:\Program Files\QGIS Wien\apps\Python27\Scripts”.

On va s’en servir pour installer pip.

Que de bordel !

C:\Program Files\QGIS Wien\apps\Python27\Scripts\easy_install.exe pip

Ca remouline, ça re-dl.

Ce qui va nous mettre la comamnde pip dans le même dossier qu’easy_install.

Et pouf, en utilisant le chemin canonique, on peut utiliser pip :

C:\Program Files\QGIS Wien\apps\Python27\Scripts\pip install ipython pyrealine

Faites attention néanmoins, utiliser cet interpréteur hors de QGIS ne vous donne pas accès à des objets comme iface qui n’existent que quand l’UI de QGIS est chargée. Ca reste pratique pour installer des libs externes, faire des tests python rapides dans le même environnement que QGIS sans lancer tout le bouzin et se la péter face à ses collègues géomaticiens qui ont l’air d’une poule avec un canif devant une console.

7 thoughts on “Comment installer des libs Python externes dans QGIS ?

  • joshuafr

    Ou alors, tu passes sur un vrai OS et là Qgis utilisera le Python du système

  • Martin

    Tiens, on s’intéresse au domaine géospatial tout d’un coup ? Je vous signale que Python est utilisé, non seulement dans QGIS, mais aussi dans GRASS GIS, GvSig et OpenJump (par Jython) et ArcGIS (ArcPy) et…

    Il y a aussi de nombreux module spatiaux qui permettent de se passer d’un logiciel.

    Le principal problème est que tous ces Sigistes se lancent dans la création de scripts en Python, sans connaître Python… (voir , par exemple…)

    Alors leur parler de pip, surtout sur Windows où les versions de QGIS dites “standalone” utilisent leur propre version de Python (comme illustré dans l’article, c’est un peu… (je ne suis pas sur Windows)

    Mais bon, un article similaire existe en anglais : avec l’utilisation de fichier .bat

  • Geojulien

    Ça fait plaisir de voir un post sur un logiciel que notre petit monde utiliser au quotidien.

    Concernant la façon d’installer des packages Python tiers dans QGIS, j’avais opté un moment pour la modification du registre histoire de pouvoir profiter des installeurs automatisés (en particulier les setup.exe de Christoph Gohlke… désormais uniquement .whl), chers aux utilisateurs moyens de Windows : http://www.forumsig.org/showthread.php/35330-Astuce-windows-installer-packages-python-tiers

    Pour compléter, il faudrait aussi prendre en compte l’installation de QGIS via l’OSGeo4W (32 ou 64 bits : http://www.qgis.org/fr/site/forusers/download.html dans partie utilisateurs experts) dont le chemin sera plutôt C:\OSGeo4W64\apps\Python27.

  • Réchèr

    Oué cool, du python avec du QGIS !!

    Merci pour cet article, j’en ferais bon usage si j’en ai l’usage.

  • RéGIS

    Bon les gars, ok, nous les sigistes sommes un peu des boulets du python, mais pas que.. le python, c’est bon quand même hein.

    Si vous utilisez les distributions windooows, ce qui m’étonne de vous, utilisez juste la console osgeo4W, soit le shell windows, soit Msys (plus linuxienne quand même). Et là miraaacle, pip marche tout seul, pas besoin de rebidouiller tous les paths à la main. Les .bat fixent toutes les variables d’environnement qui vont bien (bon, j’ai galéré pour certaines lib quand même, genre seaborn, pandas..)

    Pourquoi tant de bordel? bah.. ya plein d’autres outils embarqués (gdal, et consort, le couteaux suisse du géomaticien) , et les utilisateurs QGIS windows de base seraient pas bien à l’aise d’installer Python de leur propre chef. Je vous rassure, sous Linux, vous pouvez utiliser votre python système.

    R’

  • bouzidi

    Bonjour à tous,

    Le tuto est vraiement intéressent, en tant que débutant, j’aimerais bien comprendre comment éxécuter cette ligne de commande qui suit :

    set PYTHONHOME=chemin vers l’installation de Python de QGIS.

    Je vous remercie d’avance, Bonne journée a vous

Comments are closed.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.