MTES-MCT / metadata-postgresql

Plume : gestion des métadonnées du patrimoine PostgreSQL
https://mtes-mct.github.io/metadata-postgresql/
GNU Affero General Public License v3.0
0 stars 1 forks source link

Nouvelle installation de Plume avec récupération des paramètres utilisateur #125

Closed alhyss closed 1 year ago

alhyss commented 1 year ago

Lorsqu'un utilisateur installe pour la première fois Plume en récupérant le fichier QGIS3.ini d'une installation antérieure avec les mêmes versions de QGIS et Plume, le contrôle effectué à l'activation de Plume pour déterminer si les bibliothèques Python ont besoin d'être installées/mises à jour détermine qu'aucune action n'est nécessaire, puisque, d'après les informations lues dans le QGIS3.ini, Plume était déjà présent. Évidemment, les bibliothèques sont en fait absentes et Plume plante.

Il serait souhaitable de réussir à détecter ce cas où les bibliothèques ne sont pas installées du tout, pour lancer leur installation indépendamment du QGIS3.ini. A priori c'est beaucoup plus simple que vérifier qu'il y a toutes les dépendances dans les bonnes versions.

Même quelque chose comme ça devrait fonctionner, en ajoutant ensuite update_lib aux conditions d'activation du processus de mise à jour ?


update_lib = False
try:
   import plume.rdf.rdflib
except:
   update_lib = True
WREATCHED commented 1 year ago

Pas complètement d'accord. Là c'était la mise à jour qui manquait et donc update_lib aurait été à True . non ? Mais Ok pour rajouter cela

alhyss commented 1 year ago

Dans ce cas de figure, c'est la première fois que Plume est installé, donc on peut présumer du fait que RDFLib n'est pas là du tout.

WREATCHED commented 1 year ago

Il faut être clair alors sur le mot "Installation" Si c'est copier les fichiers physiquement alors Oui, mais si c'est à partir de Qgis avec le gestionnaire d'extension, à l'activation Qgis compile et créé les .PYC et donc cela devrait marcher. Installer le plugin avec copie et recopier avant de lancer Qgis le Qgis3.ini, c'est une manipulation dangereuse non ? Sommes nous d'accord ? le GO du stage me fait les gros yeux .......

alhyss commented 1 year ago

J'avais plutôt en tête le cas où Plume a été installé proprement à partir du gestionnaire d'extensions. Mais dans tous les cas, l'installation des bibliothèques intervient après l'installation de Plume, lors de l'activation du plugin. Ça me semble donc indépendant de la manière dont Plume a été installé ?

La seule chose qui est présumée copiée dans cette histoire, c'est le QGIS3.ini. Dans le cas de l'installation d'un nouveau poste de travail, c'est généralement fait par le technicien informatique, qui restaure \AppData avec les données de l'ancien poste. Mais il me semble aussi légitime de le faire volontairement. C'est tout à fait normal pour un utilisateur de vouloir récupérer sa configuration antérieure, et normalement ça ne pose aucun problème, surtout quand la version de QGIS est la même.

Qu'est-ce que je n'ai pas compris ?

WREATCHED commented 1 year ago

C'est que lorsque l'on installe à partir du gestionnaire, le plugin dans certains cas s'active aussitôt et donc compile

alhyss commented 1 year ago

Mais que l'activation se fasse immédiatement ou seulement quand l'utilisateur la déclenche manuellement, ça ne change rien au fait que la même erreur va apparaître ?

WREATCHED commented 1 year ago

Be non, puisque la copie a du se faire après sinon, les bibliothèques aurait été créées. sinon je ne comprends plus rien On ferait mieux d'en parler au téléphone

alhyss commented 1 year ago

Le fichier QGIS3.ini a été copié avant l'installation de Plume et les bibliothèques n'ont pas été créées, c'est bien tout le problème.

Tu as sans doute raison, ce serait plus efficace d'en parler de vive voix.

alhyss commented 1 year ago

Méthode de test beaucoup plus propre qu'un import (qui risquerait de nous laisser des objets obsolètes en cache dans le cas où les bibliothèques sont ensuite mises à jour) :

if not 'rdflib' in sys.modules:
    # lancer l'installation indépendamment de ce qui est écrit dans le QGIS3.ini
WREATCHED commented 1 year ago

J'ai fait le boulot, ça marche mais du coup je découvre un pb fonctionnel à mon avis. on en parle plus tard

WREATCHED commented 1 year ago

RESOLU

    #--                  
    update_lib = False
    if not (mVersionPlume != mVersionPlumeBibli or mVersionPlume != mPython_version) : 
       try:
          import plume.rdf.rdflib
       except:
          update_lib = True
    #--   

Au démarrage de Qgis, la solution sys.modules ne fonctionnait pas, car il lisait les variables d'environnement avoir d'avoir chargé celles de Qgis