ERBA non funziona con QGIS 3.6


21

Ho aggiornato QGIS alla versione 3.6 usando OSGEO4w

Quando provo a eseguire uno script GRASS, ricevo il seguente messaggio di errore:

Messaggio di errore

Questo algoritmo non può essere eseguito :-( La cartella GRASS 7 specificata "C: \ OSGEO4 ~ 1 \ bin \ bin" non contiene un set valido di moduli GRASS 7. Per favore, vai alla finestra di dialogo Impostazioni di elaborazione e controlla che GRASS 7 cartella è configurata correttamente

Sembra che il percorso non esista, ma non sono riuscito a trovare un posto per cambiarlo; non è più un'opzione nelle impostazioni di elaborazione come nelle versioni 2.x.

Esiste un modo per eseguire quegli script di elaborazione in QGIS 3.6 e, in tal caso, come posso modificare le impostazioni necessarie?


Modifica: ecco come appaiono le mie opzioni di elaborazione

Elaborazione dei parametri


Hai provato a usare QGIS 3.4.5 (il nuovo LTR), funziona in questa versione.
ahmadhanb,

Quando avvio prima GRASS, quindi carico QGIS, va tutto bene. Altrimenti no.
Jim McLaughlin,

Risposte:


31

Se apro QGIS con il collegamento "QGIS Desktop 3.6.0 con GRASS 7.6.0" tutto funziona bene. Se apro QGIS con il collegamento "QGIS Desktop 3.6.0", visualizzo lo stesso errore


9
Mi chiedo perché GRASS non sia l'opzione predefinita per iniziare con QGIS.
Mr. Che

Lo stesso identico problema è sorto di nuovo ed è stato risolto aggiornando il grasspacchetto con OSGEO4w.
Mr. Che

Non ho affatto l' QGIS Desktop x.x.x with GRASS x.x.xopzione. Ho solo l' QGIS Desktopopzione. Cosa potrebbe esserci di sbagliato?
Nancy,

Se come me non hai questo collegamento, puoi crearne uno nuovo che punta a "qgis-bin-g7.exe" nella stessa cartella delle applicazioni QGIS per le quali hai già un collegamento. Nel mio caso, la cartella è C: \ OSGeo4W64 \ bin. Questo aprirà GRASS con l'ultima versione attuale di QGIS. Uso QGIS 3.4 (versione attuale a lungo termine) e quindi ho modificato il collegamento per puntare a "qgis-ltr-bin-g7".
Prugnolo

Per me, non ho una scorciatoia del genere. E dipende sicuramente dall'ambiente. Quindi ho aggiunto la linea call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"al mio file batch qgis e gli strumenti di grass funzionano. Di certo il percorso deve essere corretto e la linea dovrebbe seguire quella lineacall "%~dp0\o4w_env.bat"
Andreas Müller

6

Ho avuto lo stesso problema ma sono riuscito a risolverlo rinominando la mia cartella grass da "grass76" a grass-7.6.0 ".


4

Rispetto a una parte della tua domanda

"Sembra che il percorso non esista, ma non sono riuscito a trovare un posto per cambiarlo; non è più un'opzione nelle impostazioni di elaborazione come nelle versioni 2.x."

puoi gestire il percorso della cartella GRASS funzionante tramite

Impostazioni> Opzioni> Elaborazione> Provider> GRASS

Basato sulla versione QGIS 3.0.3

GRASS_setting_window

dove è possibile regolare il 'GRASS7 folder', basta fare doppio clic su di esso.

A proposito, GRASS funziona bene sulla mia versione QGIS 3.0.3.


Da quale versione proviene questo screenshot? Ho attaccato il mio, sembra che tu abbia qualche altra opzione di me!
Kantan,

1
Versione QGIS 3.0.3
Taras

Probabilmente non hai lanciato QGIS con GRASS in esso
Taras,

La riga per "Cartella GRASS7" manca in qgis 3.6 e 3.10.
Foobaremade

Tuttavia, è stabile per LTR (QGIS 3.4)
Taras

3

Sulla base di questo articolo di grasswiki che imposta la variabile di ambiente del sistema operativo GISBASE sulla cartella di installazione di GRASS potrebbe risolvere il problema (ad es. C: \ OSGeo4W \ apps \ grass \ grass76).

Le opzioni di elaborazione di QGIS 3.8 non contengono ancora un'opzione per la cartella GRASS.

Mi riferisco al sistema operativo Windows e QGIS 3.8 / GRASS 7.6.


inchiodato per me: nessuna cartella GRASS nelle opzioni di elaborazione per QGIS 3.8. Ci sono alcune altre cartelle associate a GRASS, ma nulla che sia distintamente GRASS. Sto usando QGIS 3.8.1. Per quanto riguarda il suggerimento di Taras secondo cui l'OP non ha lanciato "QGIS con GRASS", questa non è un'opzione per me attualmente sulla mia macchina e potrebbe non essere stata neanche per l'OP. So di aver avuto questa opzione in passato, non so cosa ho fatto diversamente quando ho installato QGIS su questa nuova macchina (per me) per non vederlo. A quanto pare, l'aggiunta del nuovo percorso ambientale ha funzionato per me.
shea,

Risolto il problema per me!
Foobaremade

2

A me sembra che manchino alcune variabili d'ambiente quando si avvia il qgis "normale". Ho risolto questo problema in QGIS 3.4.13 modificando qgis-ltr-bin.env e qgis-ltr.bat . Nella versione 3.6, 3.8 (...) questi due file avranno un nome diverso ma simile. Se tu

fai clic con il tasto destro sull'icona di qgis start> apri il percorso del file

questo dovrebbe portarti a ... \ OSGeo4W64 \ bin o ovunque tu abbia installato qgis. Qui troverai i due file. Aprili con un editor di testo standard (ad es. Blocco note) per apportare modifiche:

qgis-ltr-bin.env :

  • cambia PATH sulla stessa linea PATH salvata in qgis-ltr-bin-g7.env (che si trova nella stessa cartella)
  • da qgis-ltr-bin-g7.env aggiungi le variabili GISBASE, GRASS_PROJSHARE e GRASS_PYTHON

in qgis-ltr.bat :

  • aggiungi la riga 3 da qgis-ltr-grass7.bat (che si trova nella stessa cartella): call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"(forse la cartella grass ha un nome diverso nella tua versione)
  • cambia PATH sulla stessa linea PATH salvata in qgis-ltr-grass7.bat (linea 7)

Grazie ora con QGIS 3.5.15 funziona.
Natan

1

La stessa correzione di @Friedemann ha funzionato in QGIS 3.10 con la cartella C: \ OSGeo4W64 \ apps \ grass \ grass78 modificata in C: \ OSGeo4W64 \ apps \ grass \ grass-7.8.0

AGGIORNAMENTO: la semplice correzione della modifica del nome della cartella ha consentito l'apertura delle funzioni della cassetta degli attrezzi in erba in QGIS 3.10. Tuttavia, quando eseguite, tutte le operazioni GRASS non sono riuscite con il seguente errore nel registro:

Il sistema non può trovare il percorso specificato. '""' non è riconosciuto come comando interno o esterno, programma eseguibile o file batch.

Quindi, ho provato a impostare la variabile ambientale di Windows (usando il nome della cartella GRASS ripristinato su 'grass78'), come descritto in un'altra risposta, e le operazioni GRASS ora vengono eseguite correttamente in QGIS. Questa sembra essere la soluzione corretta.


Grazie per il tuo contributo, potresti indicarmi una risorsa per sapere quale variabile impostare e dove?
Kantan,

1
Uso Windows 10, quindi in Esplora risorse: fare clic con il tasto destro su questo PC , selezionare Proprietà, quindi Impostazioni di sistema avanzate , quindi Scheda Avanzate , quindi Variabili ambientali . Fai clic su Nuovo ... e inserisci "GISBASE" in Nome variabile e "C: \ OSGeo4W64 \ apps \ grass \ grass78" in Valore variabile [ NOTA: il tuo percorso potrebbe essere diverso a seconda della versione di QGIS e / o GRASS che hai ]. Fai clic su OK e dovresti vedere la variabile appena creata aggiunta all'elenco.
ewolf

0

Un'altra soluzione per utilizzare GRASS nell'elaborazione di ToolBox (con QGIS) è trovare nel C:\OSGeo4W64\apps\qgis\python\processing\algs\grass7\file Grass7Utils.pye sostituire i termini:

  • grass-7.per grass7il codice si trova sulla linea 223 o giù di lì
  • poi for version in ['', '7', '76', '74', '72', '71', '70']:"by for version in ['', '7', '78', '76', '74', '72', '71', '70']:nel codice situato alla riga 229 o giù di lì.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.