Impossible d'exécuter les algorithmes Grass dans QGIS 2.18 sur Ubuntu 16.04

9

J'ai QGIS et GRASS installés via les référentiels UbuntuGIS. Si j'essaie d'exécuter un algorithme GRASS 6 ou 7, j'obtiens le message d'erreur suivant:

"This algorithm cannot be run :-( It seems that GRASS GIS 7 is not correctly installed and configured in your system. Please install it before running GRASS GIS 7 algorithms."

J'ai vérifié d'autres questions sur ce problème, mais la plupart traitent de l'installation sur les systèmes Windows:

Sur linux, je n'ai pas à configurer le chemin du dossier GRASS comme le dit l' aide QGIS sur la configuration des applications externes. L'herbe s'écoule de la coquille en tapant grass. La version Grass appelée par le shell est GRASS 7.2.0 (2016).

De plus, j'ai vérifié que GRASS 6 et 7 est activé dans le menu des fournisseurs supplémentaires dans la boîte à outils de QGIS.

Une suggestion que pourrait-on faire pour résoudre ce problème?

Éditer

Pendant ce temps, j'ai complètement désinstallé et réinstallé qgis python-qgis qgis-plugin-grassles dépôts officiels de QGIS ... mais l'erreur continue.

Edit 2 Vérification des journaux pour les qgis dans le panneau des messages de journal J'ai découvert sous l'onglet "plugins" que le plugin grass ne se charge pas correctement:

2017-01-23T14:10:22 1   Failed to load /usr/lib/qgis/plugins/libgrassplugin7.so (Reason: Cannot load library /usr/lib/qgis/plugins/libgrassplugin7.so: (libgrass_gis.7.0.3.so: cannot open shared object file: No such file or directory))
2017-01-23T14:10:22 1   Failed to load /usr/lib/qgis/plugins/libgrassprovider7.so (Reason: Cannot load library /usr/lib/qgis/plugins/libgrassprovider7.so: (libgrass_gis.7.0.3.so: cannot open shared object file: No such file or directory))
2017-01-23T14:10:22 1   Failed to load /usr/lib/qgis/plugins/libgrassrasterprovider7.so (Reason: Cannot load library /usr/lib/qgis/plugins/libgrassrasterprovider7.so: (libgrass_gis.7.0.3.so: cannot open shared object file: No such file or directory))
joaoal
la source
Pour Edit2: Il semble que GRASS 7.0.3 soit recherché, mais vous n'avez que 7.2.0 sur le disque. Ne mélangez pas les packages Ubuntugis et non ubuntugis.
AndreJ
@AndreJ Je pense que ce mélange est probablement le principal problème. J'aurais peut-être ajouté des référentiels ubuntugis et qgis. J'ai essayé d'ajouter uniquement les référentiels qgis et de réinstaller tout. mais cela n'a pas encore corrigé cela. maintenant je ne reçois aucun message indiquant que le plugin est chargé bien qu'il soit installé. une suggestion sur la façon dont je pourrais nettoyer tout désordre restant?
joaoal
1
Vous pouvez soit rétrograder GRASS vers 7.0.3, soit supprimer les paquets Debian QGIS (avec purge, voir askubuntu.com/questions/187888/… ), revenir à ubuntgis et suivre la solution de contournement dans ma réponse.
AndreJ

Réponses:

9

J'obtiens la même erreur avec la version Ubuntugis de QGIS et GRASS version 7.2.0.

Il semble que 7.2 ne soit pas encore correctement adopté dans le traitement. Il y a déjà un ticket pour cela: https://hub.qgis.org/issues/16019 et https://lists.osgeo.org/pipermail/qgis-developer/2017-January/046671.html

Pour contourner ce problème, vous pouvez modifier (en tant que sudo) la /usr/share/qgis/python/plugins/processing/algs/grass7/Grass7Utils.pyligne 251 pour

            command = 'grass72 ' + Grass7Utils.grassMapsetFolder() \

et ligne 103 de Grass7AlgorithmProvider.pyà

    return 'grass72'

Ou rétrogradez vers GRASS 7.0.3 à partir du référentiel principal d'Ubuntu.

Les commandes GRASS 6 ne fonctionneront pas avec GRASS 7, vous pouvez donc désactiver les 161 GRASScommandes.


Juste une autre solution de contournement de la liste de diffusion https://lists.osgeo.org/pipermail/qgis-user/2017-January/038907.html

sudo ln -s /usr/bin/grass72 /usr/bin/grass70


MISE À JOUR

Également signalé avec http://hub.qgis.org/issues/16110 et corrigé avec http://hub.qgis.org/projects/quantum-gis/repository/revisions/099e7a77f2c32f469539f542a31df7b0d4b77dd3 Cela devrait fonctionner pour les versions GRASS 7.0 à 7.3

Malheureusement, le correctif n'a pas été appliqué à QGIS 2.18.4, donc les solutions de contournement sont toujours nécessaires.

AndreJ
la source
d'accord. la solution de contournement n'a pas fonctionné pour moi. j'ai essayé mais ça a échoué. Cependant, la rétrogradation via le gestionnaire de paquets synaptics vers Grass 7.0 a fait l'affaire. comment puis-je m'assurer qu'avec la prochaine mise à jour du logiciel, il ne sera pas mis à niveau vers 7.2. encore? J'ai déjà supprimé les référentiels qgis et ubuntugis de la liste des sources mais il semble que les référentiels officiels ubuntu contiennent déjà de l'herbe 7.2 ... au moins si j'ouvre le centre logiciel, il me propose 7.2.
joaoal
1
De packages.ubuntu.com/… Je vois GRASS 7.2 uniquement pour la piquant. Peut-être que le centre logiciel a toujours l'entrée ubuntugis répertoriée. Essayez apt-cache policy grassdans une fenêtre de terminal pour voir ce qui est vraiment disponible.
AndreJ
le lien symbolique n'a pas fonctionné pour moi .. Je suis sur Mint avec qgis compilé à partir de la source et exécuté à partir du dossier de sortie. Dois-je également d'autres configurations à modifier? Merci!
matteo
2
QGIS et ubuntugis sont malheureusement souvent désynchronisés. Donc cette fois quand j'ai vu qu'il y avait une mise à jour de GRASS, je ne l'ai pas installé. Demandez-vous simplement comment savoir quand le bon moment est venu. Les chaînes officielles semblent ignorer la plupart du temps ce problème vraiment ennuyeux. Ce n'est pas amusant d'avoir un QGIS cassé tous les trois mois environ.
Bernd V.
@BerndV. J'installe généralement les nouvelles versions de Linux d'abord dans une boîte virtuelle pour les tests.
AndreJ
4

J'ai résolu le problème en réinstallant grass 7.0.3 à partir du référentiel qgis. L'herbe du repo Ubuntugis est la version 7.2, qui n'est pas prise en charge par QGIS.

  1. enlever le GRASS GIS par sudo apt-get enlever l'herbe-core grass-doc grass-gui

  2. désactiver le référentiel ubuntugis-unstable

  3. sudo apt-get installer herbe herbe-gui

Ça marche pour moi.

Yu-Hsuan
la source