6 votos

Despliegue centralizado de startup.py en QGIS

En QGIS 3 en Win10 utilizamos un startup.py para configurar, por ejemplo, las conexiones de la base de datos y un par de cosas más, que residen en C:\Users\me\AppData\Roaming\QGIS\QGIS3

Lo que buscamos es desplegar de forma centralizada el startup.py sin tener que distribuirlo a cada uno de nuestros clientes en cada cambio de guión.

El primer intento fue hacer uso del PYQGIS_STARTUP pero esto falla, porque startup.py hace uso de qgis.* que, por supuesto, no están disponibles antes de que se complete la inicialización de QGIS.

¿Cómo podemos desplegar de forma centralizada nuestro startup.py para aplicar los cambios en cada cliente sin tener que distribuirlo?

12voto

DBM Puntos 51

Nuestra solución es dejar que la variable de entorno PYQGIS_STARTUP apuntan a una muy simple pre-startup.py que copia el startup.py desde una ubicación central al directorio QGIS 3 de los usuarios requeridos:

import os, shutil

account = os.getlogin()
shutil.copy2('X:/central/location/for/startup.py', 'C:/Users/{0}/AppData/Roaming/QGIS/QGIS3'.format(account))

A continuación, QGIS 3 ejecuta esta copia previa startup.py .

3voto

sashkello Puntos 325

Una alternativa a startup.py, que es local, es el uso de init_scripts carpeta.

Por defecto, los init_scripts están configurados como QgsApplication.pkgDataPath() + '/init_scripts' .

Todos los archivos .py dentro de esa carpeta se ejecutarán en qgis lanzando por orden alfabético.

Puede utilizar la variable de entorno QGIS_INIT_SCRIPTS_DIRECTORY para apuntar a otra carpeta, incluyendo una ruta en una carpeta compartida.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X