¿Cómo usar un paquete de terceros en un complemento QGIS?


9

Estoy desarrollando un complemento QGIS y me gustaría usar paquetes de flecha o solicitudes , ya que estoy acostumbrado a manipular fechas y API REST.

QGIS no viene con estos paquetes (con menos flecha), así que cuando intento acceder a mi complemento en QGIS tengo:

"ImportError: ningún módulo llamado flecha"

¿Cómo puedo especificar mis requisitos?


3
empaquete el huevo de los módulos con el complemento ... o intercepte el error y notifique al usuario que instale los paquetes faltantes
Luigi Pirelli

R tiene paquetes, Python tiene módulos y si se utiliza una versión de Windows, que son difíciles de instalar (en particular con la versión de QGIS independiente, consulte Cómo instalar bibliotecas 3 ª parte pitón de QGIS en Windows? )
gen

2
En Boundless plugis puede encontrar una forma de empaquetar el módulo en el mismo complemento. por ejemplo, lea este código github.com/boundlessgeo/qgis-geoserver-plugin
Luigi Pirelli

@gene python tiene paquetes y módulos - stackoverflow.com/questions/7948494/…
user2856

1
@LuigiPirelli si encuentra el tiempo, sería genial si pudiera resumir los pasos necesarios para empaquetar un módulo en un complemento en una respuesta a esta pregunta. ¡Muchas gracias!
oscuro

Respuestas:


2

Gracias por los recursos Traté de usar la pavimentadora, pero parece un poco difícil de implementar, para un desarrollador no experto, ¿no?

Además, por defecto, pip no se instala incluso con el instalador OSGeo4W. ¿Podría el script de pavimentadora funciona sin él?

Para instalarlo, seguí estas instrucciones y produje un archivo por lotes (ver más abajo) pero no resuelve los problemas de derechos de administrador:

@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
Para instalar en el directorio de Python del usuario (no se necesitan derechos de administrador), puede agregar un --userinterruptor en su comando: pip install --user arrow y etc.
Dmitry Baryshnikov
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.