Ich habe QGIS mit OSGEO4w auf Version 3.6 aktualisiert
Wenn ich versuche, ein GRASS-Skript auszuführen, wird die folgende Fehlermeldung angezeigt:
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
Antworten:
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
quelle
grass
Pakets mit OSGEO4w behoben.QGIS Desktop x.x.x with GRASS x.x.x
Option überhaupt nicht. Ich bekomme nur dieQGIS Desktop
Option. Was könnte falsch sein?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"
Ich hatte das gleiche Problem, aber ich konnte es lösen, indem ich meinen Grasordner von "grass76" in grass-7.6.0 "umbenannte.
quelle
In Bezug auf einen Teil Ihrer Frage
Sie können den Pfad des Arbeitsordners GRASS über verwalten
Basierend auf der Version QGIS 3.0.3
Wo Sie das einstellen können, doppelklicken Sie
'GRASS7 folder'
einfach darauf.Übrigens funktioniert GRASS auf meiner QGIS 3.0.3-Version einwandfrei.
quelle
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.
quelle
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 :
in qgis-ltr.bat :
call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"
( Möglicherweise hat der Grasordner in Ihrer Version einen anderen Namen.)quelle
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 wurdeUPDATE: 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:
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.
quelle
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 findenGrass7Utils.py
und zu ersetzen:grass-7.
durchgrass7
in dem Code in Zeile 223 oder so ungefährfor version in ['', '7', '76', '74', '72', '71', '70']:
"durchfor version in ['', '7', '78', '76', '74', '72', '71', '70']:
in dem Code in Zeile 229 oder so ungefähr.quelle