GRASS ne fonctionne pas avec QGIS 3.6

20

J'ai mis à jour QGIS vers la version 3.6 à l'aide d'OSGEO4w

Lorsque j'essaie d'exécuter un script GRASS, j'obtiens le message d'erreur suivant:

Message d'erreur

Cet algorithme ne peut pas être exécuté :-( Le dossier GRASS 7 spécifié "C: \ OSGEO4 ~ 1 \ bin \ bin" ne contient pas un ensemble valide de modules GRASS 7. Veuillez aller dans la boîte de dialogue Paramètres de traitement et vérifier que le GRASS Le dossier 7 est correctement configuré

Il semble que le chemin n'existe pas, mais je n'ai pas trouvé d'endroit pour le changer; ce n'est plus une option dans les paramètres de traitement comme dans les versions 2.x.

Existe-t-il un moyen d'exécuter ces scripts de traitement dans QGIS 3.6 et si oui, comment pourrais-je modifier les paramètres nécessaires?


Modifier: voici à quoi ressemblent mes options de traitement

Paramètres de traitement

Kantan
la source
Avez-vous essayé d'utiliser QGIS 3.4.5 (le nouveau LTR), cela fonctionne dans cette version.
ahmadhanb
Quand je démarre GRASS d'abord, puis charge QGIS, tout va bien. Sinon, non.
Jim McLaughlin

Réponses:

30

Si j'ouvre QGIS avec le raccourci "QGIS Desktop 3.6.0 avec GRASS 7.6.0", tout fonctionne bien. Si j'ouvre QGIS avec le raccourci "QGIS Desktop 3.6.0" j'obtiens la même erreur que vous

Formulaire de données
la source
9
Je me demande pourquoi GRASS n'est pas l'option par défaut pour démarrer avec QGIS.
M. Che
Le même problème est survenu et a été résolu en mettant à jour le grasspackage avec OSGEO4w.
M. Che
Je n'ai pas du QGIS Desktop x.x.x with GRASS x.x.xtout l' option. Je n'ai que l' QGIS Desktopoption. Qu'est-ce qui ne va pas?
Nancy
Si, comme moi, vous ne disposez pas de ce raccourci, vous pouvez en créer un nouveau pointant vers "qgis-bin-g7.exe" dans le même dossier que les applications QGIS pour lesquelles vous disposez déjà d'un raccourci. Dans mon cas, le dossier est C: \ OSGeo4W64 \ bin. Cela ouvrira GRASS avec votre dernière version actuelle de QGIS. J'utilise QGIS 3.4 (version actuelle à long terme), et j'ai donc changé le raccourci pour pointer sur "qgis-ltr-bin-g7".
blackthorn
Pour moi, je n'ai pas un tel raccourci. Et cela dépend définitivement de l'environnement. J'ai donc ajouté la ligne call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"à mon fichier batch qgis, et les outils Grass fonctionnent. Bien sûr, le chemin doit être correct et la ligne doit venir après cette lignecall "%~dp0\o4w_env.bat"
Andreas Müller
6

J'ai eu le même problème mais j'ai réussi à le résoudre en renommant mon dossier grass de "grass76" en grass-7.6.0 ".

Friedemann
la source
4

Concernant une partie de votre question

"Il semble que le chemin n'existe pas, mais je n'ai pas trouvé d'endroit pour le changer; ce n'est plus une option dans les paramètres de traitement comme dans les versions 2.x."

vous pouvez gérer le chemin du dossier GRASS de travail via

Paramètres> Options> Traitement> Fournisseurs> GRASS

Basé sur la version QGIS 3.0.3

GRASS_setting_window

où vous pouvez ajuster le 'GRASS7 folder', double-cliquez simplement dessus.

Et en passant, GRASS fonctionne très bien sur ma version QGIS 3.0.3.

Taras
la source
De quelle version est cette capture d'écran? J'ai joint la mienne, il semble que vous ayez quelques options de plus que moi!
Kantan
1
Version QGIS 3.0.3
Taras
Vous n'avez probablement pas lancé QGIS avec GRASS dedans
Taras
La ligne du "dossier GRASS7" est manquante dans les qgis 3.6 et 3.10.
foobar barbecue
Cependant, il est stable pour LTR (QGIS 3.4)
Taras
3

Sur la base de cet article grasswiki , la définition de la variable d'environnement du système d'exploitation GISBASE dans le dossier d'installation de GRASS peut résoudre le problème (par exemple C: \ OSGeo4W \ apps \ grass \ grass76).

Les options de traitement de QGIS 3.8 ne contiennent toujours pas d'option pour le dossier GRASS.

Je me réfère au système d'exploitation Windows et à QGIS 3.8 / GRASS 7.6.

Nicolo
la source
cloué sur la tête pour moi: pas de dossier GRASS dans les options de traitement pour QGIS 3.8. Il existe quelques autres dossiers associés à GRASS, mais rien de distinctement GRASS. J'utilise QGIS 3.8.1. En ce qui concerne la suggestion de Taras que l'OP n'a pas lancé "QGIS avec GRASS", ce n'est pas une option pour moi actuellement sur ma machine et peut-être pas une option pour l'OP non plus. Je sais que j'ai eu cette option dans le passé, je ne sais pas ce que j'ai fait différemment lorsque j'ai installé QGIS sur cette nouvelle machine (pour moi) pour la manquer. Il me semble que l'ajout du nouveau chemin de l'environnement a fonctionné.
Karité
Fixé pour moi!
foobar barbecue
2

Pour moi, il semble que certaines variables d'environnement manquent lors du démarrage des qgis "normaux". J'ai corrigé cela dans QGIS 3.4.13 en changeant qgis-ltr-bin.env et qgis-ltr.bat . Dans les versions 3.6, 3.8 (...) ces deux fichiers auront un nom différent mais similaire. Si vous

clic droit sur l'icône de démarrage de qgis> chemin du fichier ouvert

cela devrait vous conduire à ... \ OSGeo4W64 \ bin ou partout où vous avez installé qgis. Vous y trouverez les deux fichiers. Ouvrez-les avec un éditeur de texte standard (par exemple le bloc-notes) pour apporter des modifications:

qgis-ltr-bin.env :

  • remplacez PATH par la même ligne PATH que celle enregistrée dans qgis-ltr-bin-g7.env (située dans le même dossier)
  • à partir de qgis-ltr-bin-g7.env, ajoutez les variables GISBASE, GRASS_PROJSHARE et GRASS_PYTHON

dans qgis-ltr.bat :

  • ajoutez la ligne 3 de qgis-ltr-grass7.bat (situé dans le même dossier): call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"(peut-être que le dossier grass a un nom différent dans votre version)
  • remplacez PATH par la même ligne PATH que celle enregistrée dans qgis-ltr-grass7.bat (ligne 7)
jannik schilling
la source
Merci maintenant avec QGIS 3.5.15 fonctionne.
natan
1

Même correction que @Friedemann fonctionnait dans QGIS 3.10 avec le dossier C: \ OSGeo4W64 \ apps \ grass \ grass78 changé en C: \ OSGeo4W64 \ apps \ grass \ grass-7.8.0

MISE À JOUR: le correctif de changement de nom de dossier simple a permis aux fonctions de la boîte à outils Grass de s'ouvrir dans QGIS 3.10. Cependant, une fois exécutées, les opérations GRASS ont toutes échoué avec l'erreur suivante dans le journal:

Le système ne peut pas trouver le chemin spécifié. '""' n'est pas reconnu comme une commande interne ou externe, un programme exploitable ou un fichier de commandes.

J'ai donc essayé de définir la variable d'environnement Windows (en utilisant le nom du dossier GRASS revenu à 'grass78'), comme décrit dans une autre réponse, et les opérations GRASS s'exécutent désormais correctement dans QGIS. Cela semble être la bonne solution.

loup
la source
Merci pour votre contribution, pourriez-vous me diriger vers une ressource pour savoir quelle variable définir et où?
Kantan
1
J'utilise Windows 10, donc dans l'Explorateur Windows: faites un clic droit sur ce PC , sélectionnez Propriétés puis Paramètres système avancés , puis onglet Avancé , puis Variables environnementales . Cliquez sur Nouveau ... et entrez "GISBASE" dans le nom de la variable et "C: \ OSGeo4W64 \ apps \ grass \ grass78" dans la valeur de la variable [ REMARQUE: votre chemin peut être différent selon la version de QGIS et / ou GRASS que vous avez ]. Cliquez sur OK et vous devriez voir la variable nouvellement créée ajoutée à la liste.
ewolf
0

Une autre solution pour utiliser GRASS dans le traitement de ToolBox (avec QGIS) est de trouver dans C:\OSGeo4W64\apps\qgis\python\processing\algs\grass7\le fichier Grass7Utils.pyet de remplacer les termes:

  • grass-7.par grass7dans le code situé à la ligne 223 ou aux alentours
  • puis for version in ['', '7', '76', '74', '72', '71', '70']:"par for version in ['', '7', '78', '76', '74', '72', '71', '70']:dans le code situé à la ligne 229 ou environ.
Olivier ATHIMON
la source