Comment utiliser un package tiers dans un plugin QGIS?


9

Je suis en train de développer un plugin QGIS et j'aimerais utiliser des packages de flèches ou de requêtes car je suis habitué à manipuler les dates et les API REST.

QGIS n'est pas fourni avec ces packages (à moins de flèche), donc quand j'essaie d'accéder à mon plugin dans QGIS, j'ai:

"ImportError: aucun module nommé flèche"

Comment puis-je spécifier mes exigences?


3
empaqueter l'œuf des modules avec le plugin ... ou intercepter l'erreur et notifier l'utilisateur d'installer les paquets manquants
Luigi Pirelli

R a des packages, Python a des modules et si vous utilisez une version Windows, ils sont difficiles à installer (en particulier avec la version QGIS autonome, voir Comment installer des bibliothèques python tierces pour QGIS sur Windows? )
gène

2
Dans Boundless plugis, vous pouvez trouver un moyen de conditionner le module dans le même plugin. par exemple, lisez ce code github.com/boundlessgeo/qgis-geoserver-plugin
Luigi Pirelli

@gene python a des packages et des modules - stackoverflow.com/questions/7948494/…
user2856

1
@LuigiPirelli si vous trouvez le temps, ce serait bien si vous pouviez résumer les étapes nécessaires pour empaqueter un module dans un plugin en réponse à cette question. Merci beaucoup!
underdark

Réponses:


2

Merci pour les ressources. J'ai essayé d'utiliser le pavé mais cela semble un peu pénible à mettre en œuvre, pour un développeur non expert, non?

De plus, par défaut, pip n'est pas installé même avec le programme d'installation OSGeo4W. Pourriez-vous que le script de pavé fonctionne sans lui?

Pour l'installer, j'ai suivi ces instructions et j'ai produit un fichier batch (voir ci-dessous) mais ne résout pas les problèmes de droits d'administrateur:

@echo off
Title "PyPi in QGIS"
Echo "Adding 3rd party modules in QGIS"

REM securely download get-pip install script
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

REM install pip
python get-pip.py

REM install 3rd party modules
pip install --user arrow
pip install --user requests
pip install --user requests[security]

@echo on
pause

2
Pour installer dans le répertoire utilisateur python (aucun droit d'administrateur requis), vous pouvez ajouter un --usercommutateur dans votre commande: pip install - flèche utilisateur et etc.
Dmitry Baryshnikov
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.