GRASS funktioniert nicht mit QGIS 3.6

19

Ich habe QGIS mit OSGEO4w auf Version 3.6 aktualisiert

Wenn ich versuche, ein GRASS-Skript auszuführen, wird die folgende Fehlermeldung angezeigt:

Fehlermeldung

Dieser Algorithmus kann nicht ausgeführt werden :-( Der angegebene GRASS 7-Ordner "C: \ OSGEO4 ~ 1 \ bin \ bin" enthält keinen gültigen Satz von GRASS 7-Modulen. Gehen Sie zum Dialogfeld "Verarbeitungseinstellungen" und überprüfen Sie, ob GRASS 7 vorhanden ist 7 Ordner ist korrekt konfiguriert

Es sieht so aus, als ob der Pfad nicht existiert, aber ich konnte keinen Ort finden, an dem ich ihn ändern könnte. Dies ist in den Verarbeitungseinstellungen keine Option mehr wie in Version 2.x.

Gibt es eine Möglichkeit, diese Verarbeitungsskripte in QGIS 3.6 auszuführen, und wenn ja, wie kann ich die erforderlichen Einstellungen anpassen?


Bearbeiten: So sehen meine Verarbeitungsoptionen aus

Verarbeitungsparameter

Kantan
quelle
Haben Sie versucht, QGIS 3.4.5 (die neue LTR) zu verwenden, funktioniert es in dieser Version.
Ahmadhanb
Wenn ich zuerst GRASS starte und dann QGIS lade, ist alles in Ordnung. Sonst nicht.
Jim McLaughlin

Antworten:

29

Wenn ich QGIS mit der Verknüpfung "QGIS Desktop 3.6.0 mit GRASS 7.6.0" öffne, funktioniert alles einwandfrei. Wenn ich QGIS mit der Verknüpfung "QGIS Desktop 3.6.0" öffne, wird der gleiche Fehler wie bei Ihnen angezeigt

Datenformular
quelle
9
Ich frage mich, warum GRASS nicht die Standardoption für den Start mit QGIS ist.
Mr. Che
Das exakt gleiche Problem trat erneut auf und wurde durch Aktualisieren des grassPakets mit OSGEO4w behoben.
Herr Che
Ich bekomme die QGIS Desktop x.x.x with GRASS x.x.xOption überhaupt nicht. Ich bekomme nur die QGIS DesktopOption. Was könnte falsch sein?
Nancy
Wenn Sie wie ich diese Verknüpfung nicht haben, können Sie eine neue Verknüpfung erstellen, die auf "qgis-bin-g7.exe" verweist, und zwar im selben Ordner wie die QGIS-Anwendungen, für die Sie bereits eine Verknüpfung haben. In meinem Fall lautet der Ordner C: \ OSGeo4W64 \ bin. Dadurch wird GRASS mit Ihrer aktuellen Version von QGIS geöffnet. Ich verwende QGIS 3.4 (aktuelle Langzeitversion) und habe daher die Verknüpfung so geändert, dass sie auf "qgis-ltr-bin-g7" verweist.
Blackthorn
Für mich habe ich keine solche Abkürzung. Und es kommt definitiv auf die Umgebung an. Also habe ich die Zeile call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"zu meiner QGIS-Batch-Datei hinzugefügt , und die Gras-Tools funktionieren. Natürlich muss der Weg korrekt sein und die Linie sollte nach dieser Linie kommencall "%~dp0\o4w_env.bat"
Andreas Müller
6

Ich hatte das gleiche Problem, aber ich konnte es lösen, indem ich meinen Grasordner von "grass76" in grass-7.6.0 "umbenannte.

Friedemann
quelle
4

In Bezug auf einen Teil Ihrer Frage

"Es sieht so aus, als ob der Pfad nicht existiert, aber ich konnte keinen Ort finden, an dem ich ihn ändern könnte. Dies ist in den Verarbeitungseinstellungen keine Option mehr wie in Version 2.x."

Sie können den Pfad des Arbeitsordners GRASS über verwalten

Einstellungen> Optionen> Verarbeitung> Anbieter> GRASS

Basierend auf der Version QGIS 3.0.3

GRASS_setting_window

Wo Sie das einstellen können, doppelklicken Sie 'GRASS7 folder'einfach darauf.

Übrigens funktioniert GRASS auf meiner QGIS 3.0.3-Version einwandfrei.

Taras
quelle
Von welcher Version stammt dieser Screenshot? Ich habe meine angehängt, es sieht so aus, als hätten Sie ein paar mehr Optionen als ich!
Kantan
1
QGIS 3.0.3 Version
Taras
Sie haben QGIS wahrscheinlich nicht mit GRASS gestartet
Taras
Die Zeile für "GRASS7-Ordner" fehlt in qgis 3.6 und 3.10.
Foobarbecue
Es ist jedoch stabil für LTR (QGIS 3.4)
Taras
3

Basierend auf diesem Grasswiki-Artikel, der die Betriebssystemumgebungsvariable GISBASE auf den GRASS-Installationsordner setzt, kann das Problem möglicherweise behoben werden (z. B. C: \ OSGeo4W \ apps \ grass \ grass76).

QGIS 3.8-Verarbeitungsoptionen enthalten noch keine Option für den GRASS-Ordner.

Ich beziehe mich auf Windows-Betriebssystem und QGIS 3.8 / GRASS 7.6.

Nicolo
quelle
Für mich auf den Kopf getroffen: Kein GRASS-Ordner in den Verarbeitungsoptionen für QGIS 3.8. Es gibt einige andere GRASS-assoziierte Ordner, aber nichts, was eindeutig GRASS ist. Ich verwende QGIS 3.8.1. In Bezug auf Taras 'Vorschlag, dass das OP "QGIS with GRASS" nicht gestartet hat, ist dies für mich derzeit auf meinem Computer keine Option und möglicherweise auch keine für das OP. Ich weiß, dass ich diese Option in der Vergangenheit hatte. Ich weiß nicht, was ich anders gemacht habe, als ich QGIS auf diesem neuen (für mich) Computer installiert habe, um sie zu verpassen. Das Hinzufügen des neuen Umgebungspfads hat anscheinend bei mir funktioniert.
Shea
Für mich behoben!
Foobarbecue
2

Mir scheint, dass einige Umgebungsvariablen fehlen, wenn das "normale" QGIS gestartet wird. Ich habe dies in QGIS 3.4.13 behoben, indem ich qgis-ltr-bin.env und qgis-ltr.bat geändert habe . In der Version 3.6, 3.8 (...) haben diese beiden Dateien einen unterschiedlichen, aber ähnlichen Namen. Wenn du

Klicken Sie mit der rechten Maustaste auf Ihr qgis-Startsymbol> öffnen Sie den Dateipfad

Dies sollte Sie zu ... \ OSGeo4W64 \ bin führen oder wo immer Sie qgis installiert haben. Dort finden Sie die beiden Dateien. Öffnen Sie sie mit einem Standard-Texteditor (z. B. Notizblock), um Änderungen vorzunehmen:

qgis-ltr-bin.env :

  • Ändern Sie PATH in dieselbe PATH-Zeile, die in qgis-ltr-bin-g7.env gespeichert ist (im selben Ordner).
  • von qgis-Liter-bin-g7.env die Variablen GISBASE, GRASS_PROJSHARE und GRASS_PYTHON hinzufügen

in qgis-ltr.bat :

  • Fügen Sie Zeile 3 aus qgis-ltr-grass7.bat (im selben Ordner) hinzu: call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"( Möglicherweise hat der Grasordner in Ihrer Version einen anderen Namen.)
  • Ändern Sie PATH in dieselbe PATH-Zeile, die in qgis-ltr-grass7.bat gespeichert ist (Zeile 7).
jannik schilling
quelle
Danke jetzt mit QGIS 3.5.15 funktioniert.
Natan
1

Das gleiche Update wie @Friedemann arbeitete in QGIS 3.10 mit dem Ordner C: \ OSGeo4W64 \ apps \ grass \ grass78, der in C: \ OSGeo4W64 \ apps \ grass \ grass-7.8.0 geändert wurde

UPDATE: Mit der einfachen Korrektur zur Änderung des Ordnernamens konnten die Funktionen der Gras-Toolbox in QGIS 3.10 geöffnet werden. Bei der Ausführung schlugen jedoch alle GRASS-Operationen mit dem folgenden Fehler im Protokoll fehl:

Das System kann den angegebenen Pfad nicht finden. '""' wird nicht als interner oder externer Befehl, bedienbares Programm oder Batchdatei erkannt.

Daher habe ich versucht, die Windows-Umgebungsvariable festzulegen (wobei der GRASS-Ordnername auf "grass78" zurückgesetzt wurde), wie in einer anderen Antwort beschrieben, und die GRASS-Vorgänge werden jetzt in QGIS ordnungsgemäß ausgeführt. Dies scheint die richtige Lösung zu sein.

ewolf
quelle
Vielen Dank für Ihre Eingabe. Können Sie mich auf eine Ressource verweisen, um zu wissen, welche Variable wo festgelegt werden soll?
Kantan
1
Ich verwende Windows 10, also klicken Sie im Windows Explorer mit der rechten Maustaste auf Diesen PC , wählen Sie Eigenschaften, dann Erweiterte Systemeinstellungen , dann Registerkarte Erweitert und dann Umgebungsvariablen . Klicken Sie auf Neu ... und geben Sie "GISBASE" unter Variablenname und "C: \ OSGeo4W64 \ apps \ grass \ grass78" unter Variablenwert ein. [ HINWEIS: Ihr Pfad kann je nach Version von QGIS und / oder GRASS unterschiedlich sein ]. Klicken Sie auf OK, und die neu erstellte Variable sollte der Liste hinzugefügt werden.
Ewolf
0

Eine andere Lösung zur Verwendung von GRASS bei der Verarbeitung von ToolBox (mit QGIS) besteht darin, die Begriffe in C:\OSGeo4W64\apps\qgis\python\processing\algs\grass7\der Datei zu finden Grass7Utils.pyund zu ersetzen:

  • grass-7.durch grass7in dem Code in Zeile 223 oder so ungefähr
  • dann for version in ['', '7', '76', '74', '72', '71', '70']:"durch for version in ['', '7', '78', '76', '74', '72', '71', '70']:in dem Code in Zeile 229 oder so ungefähr.
Olivier ATHIMON
quelle