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?

Cran
la source
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
Cran
la source
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