GRASS no funciona con QGIS 3.6


20

Actualicé QGIS a la versión 3.6 usando OSGEO4w

Cuando intento ejecutar cualquier script GRASS, aparece el siguiente mensaje de error:

Mensaje de error

Este algoritmo no se puede ejecutar :-( La carpeta de GRASS 7 especificada "C: \ OSGEO4 ~ 1 \ bin \ bin" no contiene un conjunto válido de módulos de GRASS 7. Por favor, vaya al cuadro de diálogo Configuración de procesamiento y verifique que GRASS 7 carpeta está configurada correctamente

Parece que el camino no existe, pero no pude encontrar un lugar para cambiarlo; ya no es una opción en la configuración de procesamiento como en las versiones 2.x.

¿Hay alguna manera de ejecutar esos scripts de procesamiento en QGIS 3.6 y, de ser así, cómo podría modificar la configuración necesaria?


Editar: así es como se ven mis opciones de procesamiento

Parámetros de procesamiento


¿Has intentado utilizar QGIS 3.4.5 (el nuevo LTR), funciona en esta versión.
ahmadhanb

Cuando comienzo GRASS primero, luego cargo QGIS, todo está bien. De otra forma no.
Jim McLaughlin

Respuestas:


30

Si abro QGIS con el acceso directo "QGIS Desktop 3.6.0 con GRASS 7.6.0", todo funciona bien. Si abro QGIS con el acceso directo "QGIS Desktop 3.6.0" obtengo el mismo error que usted


99
Me pregunto por qué GRASS no es la opción predeterminada para comenzar con QGIS.
Sr. Che el

El mismo problema surgió nuevamente y se resolvió actualizando el grasspaquete con OSGEO4w.
Sr. Che

No tengo la QGIS Desktop x.x.x with GRASS x.x.xopción en absoluto. Solo tengo la QGIS Desktopopción. ¿Qué podría estar mal?
Nancy

Si, como yo, no tiene ese acceso directo, puede crear uno nuevo apuntando a "qgis-bin-g7.exe" en la misma carpeta que las aplicaciones QGIS para las que ya tiene un acceso directo. En mi caso, la carpeta es C: \ OSGeo4W64 \ bin. Esto abrirá GRASS con su última versión actual de QGIS. Uso QGIS 3.4 (versión actual a largo plazo), por lo que he cambiado el acceso directo para que apunte a "qgis-ltr-bin-g7".
endrino

Para mí, no tengo ese atajo. Y definitivamente depende del medio ambiente. Así que agregué la línea call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"a mi archivo por lotes qgis y las herramientas de pasto funcionan. Por supuesto, el camino debe ser correcto y la línea debe aparecer después de esa líneacall "%~dp0\o4w_env.bat"
Andreas Müller

6

Tuve el mismo problema, pero logré resolverlo cambiando el nombre de mi carpeta de hierba de "grass76" a grass-7.6.0 ".


4

Con respecto a una parte de tu pregunta

"Parece que la ruta no existe, pero no pude encontrar un lugar para cambiarla; ya no es una opción en la configuración de procesamiento como en las versiones 2.x".

puede administrar la ruta de la carpeta de trabajo GRASS a través de

Configuración> Opciones> Procesamiento> Proveedores> GRASS

Basado en la versión QGIS 3.0.3

GRASS_setting_window

donde puede ajustar el 'GRASS7 folder', simplemente haga doble clic en él.

Y, por cierto, GRASS funciona bien en mi versión QGIS 3.0.3.


¿De qué versión es esta captura de pantalla? He adjuntado el mío, ¡parece que tienes algunas opciones más que yo!
Kantan

1
Versión QGIS 3.0.3
Taras

Probablemente no iniciaste QGIS con GRASS
Taras

Falta la fila para la "carpeta GRASS7" en qgis 3.6 y 3.10.
foobarbecue

Sin embargo, es estable para LTR (QGIS 3.4)
Taras

3

Según este artículo de grasswiki, la configuración de la variable de entorno del sistema operativo GISBASE en la carpeta de instalación de GRASS podría solucionar el problema (por ejemplo, C: \ OSGeo4W \ apps \ grass \ grass76).

Las opciones de procesamiento de QGIS 3.8 todavía no contienen una opción para la carpeta GRASS.

Me refiero al sistema operativo Windows y QGIS 3.8 / GRASS 7.6.


lo clavé en la cabeza para mí: no hay carpeta GRASS en las opciones de procesamiento para QGIS 3.8. Hay algunas otras carpetas asociadas a GRASS, pero nada que sea claramente GRASS. Estoy usando QGIS 3.8.1. Con respecto a la sugerencia de Taras de que el OP no lanzó "QGIS con GRASS", esa no es una opción para mí actualmente en mi máquina y puede que tampoco haya sido una para el OP. Sé que he tenido esa opción en el pasado, no sé qué hice de manera diferente cuando instalé QGIS en esta nueva máquina (para mí) para perderla. Al parecer, la nueva ruta del entorno funcionó para mí.
shea

¡Me lo arregló!
foobarbecue

2

Para mí, parece que faltan algunas variables de entorno al iniciar los qgis "normales". Lo arreglé en QGIS 3.4.13 cambiando qgis-ltr-bin.env y qgis-ltr.bat . En la versión 3.6, 3.8 (...) estos dos archivos tendrán un nombre diferente pero similar. Si tu

haga clic derecho en el icono de inicio de qgis> abrir la ruta del archivo

esto debería llevarlo a ... \ OSGeo4W64 \ bin o donde haya instalado qgis. Encontrarás los dos archivos allí. Ábralos con un editor de texto estándar (por ejemplo, un bloc de notas) para realizar cambios:

qgis-ltr-bin.env :

  • cambie RUTA a la misma línea de RUTA que está guardada en qgis-ltr-bin-g7.env (ubicada en la misma carpeta)
  • desde qgis-ltr-bin-g7.env agregue las variables GISBASE, GRASS_PROJSHARE y GRASS_PYTHON

en qgis-ltr.bat :

  • agregue la línea 3 de qgis-ltr-grass7.bat (ubicada en la misma carpeta): call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"(tal vez la carpeta de hierba tiene un nombre diferente en su versión)
  • cambie PATH a la misma línea PATH que se guarda en qgis-ltr-grass7.bat (línea 7)

Gracias ahora con QGIS 3.5.15 funciona.
Natan

1

El mismo arreglo que @Friedemann funcionó en QGIS 3.10 con la carpeta C: \ OSGeo4W64 \ apps \ grass \ grass78 cambiada a C: \ OSGeo4W64 \ apps \ grass \ grass-7.8.0

ACTUALIZACIÓN: la solución simple de cambio de nombre de carpeta permitió que las funciones de la caja de herramientas de hierba se abrieran en QGIS 3.10. Sin embargo, cuando se ejecuta, todas las operaciones de GRASS fallaron con el siguiente error en el registro:

El sistema no puede encontrar la ruta especificada. '""' no se reconoce como un comando interno o externo, programa operativo o archivo por lotes.

Entonces, intenté configurar la variable de entorno de Windows (usando el nombre de la carpeta GRASS revertido a 'grass78'), como se describe en otra respuesta, y las operaciones GRASS ahora se ejecutan correctamente en QGIS. Esta parece ser la solución adecuada.


Gracias por su aporte, ¿podría señalarme un recurso para saber qué variable establecer y dónde?
Kantan el

1
Uso Windows 10, así que en el Explorador de Windows: haga clic con el botón derecho en Esta PC , seleccione Propiedades, luego Configuración avanzada del sistema , luego pestaña Avanzado , luego Variables ambientales . Haga clic en Nuevo ... e ingrese "GISBASE" en Nombre de variable, y "C: \ OSGeo4W64 \ apps \ grass \ grass78" en Valor de variable [ NOTA: su ruta puede ser diferente dependiendo de la versión de QGIS y / o GRASS que tenga ] Haga clic en Aceptar y debería ver la variable recién creada agregada a la lista.
ewolf

0

Otra solución para usar GRASS en el procesamiento de ToolBox (con QGIS) es buscar en C:\OSGeo4W64\apps\qgis\python\processing\algs\grass7\el archivo Grass7Utils.pyy reemplazar los términos:

  • grass-7.por grass7en el código ubicado en la línea 223 o por ahí
  • luego for version in ['', '7', '76', '74', '72', '71', '70']:"por for version in ['', '7', '78', '76', '74', '72', '71', '70']:en el código ubicado en la línea 229 o por ahí.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.