16

I updated QGIS to version 3.6 using OSGEO4w

When I try to run any GRASS script, I get the following error message :

Error message

This algorithm cannot be run :-( The specified GRASS 7 folder "C:\OSGEO4~1\bin\bin" does not contain a valid set of GRASS 7 modules. Please, go to the Processing settings dialog, and check that the GRASS 7 folder is correctly configured

It looks like the path doesn't exist, but I couldn't find a place to change it; it is not an option in the processing settings any more like in versions 2.x.

Is there a way to run those processing scripts in QGIS 3.6 and if so, how could I tweak the settings needed?


Edit : Here is what my processing options looks like

Processing parameters

  • Have you tried to use QGIS 3.4.5 (the new LTR), it works in this version. – ahmadhanb Feb 27 at 8:23
  • When I start GRASS first, then load QGIS, all is well. Otherwise, not. – Jim McLaughlin Mar 18 at 13:59
26

If I open QGIS with the shortcut "QGIS Desktop 3.6.0 with GRASS 7.6.0" everything works fine. If I open QGIS with the shortcut "QGIS Desktop 3.6.0" I get the same error as you

  • 7
    I wonder why GRASS is not the default option for starting with QGIS. – Mr. Che Sep 20 at 10:29
6

I had the same problem but I managed to solve it by renaming my grass folder from "grass76" to grass-7.6.0".

4

In respect to a part of your question

"It looks like the path doesn't exist, but I couldn't find a place to change it; it is not an option in the processing settings any more like in versions 2.x."

you can manage the path of the working GRASS folder through

Settings > Options > Processing > Providers > GRASS

Based on QGIS 3.0.3 version

GRASS_setting_window

where you can adjust the 'GRASS7 folder', just double click on it.

And by the way, GRASS works fine on my QGIS 3.0.3 version.

  • Which version is this screenshot from? I have attached mine, it looks like you have a few more options than I do! – Kantan Feb 27 at 9:08
  • 1
    QGIS 3.0.3 version – Taras Feb 27 at 9:09
  • You probably did not launch QGIS with GRASS in it – Taras Feb 27 at 9:12
  • The row for "GRASS7 folder" is missing in qgis 3.6 and 3.10 . – foobarbecue Nov 9 at 17:34
  • However, it is stable for LTR (QGIS 3.4) – Taras Nov 9 at 20:17
3

Based on this grasswiki-article setting the operating system environment variable GISBASE to the GRASS installation folder might fix the issue (e.g. C:\OSGeo4W\apps\grass\grass76).

QGIS 3.8 processing options still doesn't contain an option for the GRASS folder.

I refer to Windows operating system and QGIS 3.8 / GRASS 7.6.

  • nailed it on the head for me: no GRASS folder in processing options for QGIS 3.8. There are a few other GRASS-associated folders, but nothing that is distinctly GRASS. I'm using QGIS 3.8.1. With respect to Taras' suggestion that the OP did not launch "QGIS with GRASS", that is not an option for me currently on my machine and may not have been one for the OP either. I know I've had that option in the past, I don't know what I did differently when I installed QGIS on this new (for me) machine to miss it. Adding the new environment path worked for me it seems. – shea Oct 17 at 17:22
  • Fixed it for me! – foobarbecue Nov 9 at 17:36
1

Same fix as @Friedemann worked in QGIS 3.10 with C:\OSGeo4W64\apps\grass\grass78 folder changed to C:\OSGeo4W64\apps\grass\grass-7.8.0

UPDATE: the simple folder name change fix allowed the grass toolbox functions to open in QGIS 3.10. However, when executed, GRASS operations all failed with the following error in the log:

The system cannot find the path specified. '""' is not recognized as an internal or external command, operable program or batch file.

So, I tried setting the Windows environmental variable (using the GRASS folder name reverted back to 'grass78'), as described in another answer, and the GRASS operations now execute properly in QGIS. This seems to be the proper solution.

  • Thanks for your input, could you point me to a resource to know which variable to set and where? – Kantan Nov 26 at 6:59
  • 1
    I use Windows 10, so in Windows Explorer: right click This PC, select Properties then Advanced system settings, then Advanced tab, then Environmental Variables. Click New... and enter "GISBASE" in Variable Name, and "C:\OSGeo4W64\apps\grass\grass78" in Variable Value [NOTE: your path may be different depending on the version of QGIS and/or GRASS you have]. Click OK and you should see the newly created variable added to the list. – ewolf Nov 26 at 20:52
1

To me, it seems like some environment variables are missing when starting the "normal" qgis. I fixed this in QGIS 3.4.13 by changing qgis-ltr-bin.env and qgis-ltr.bat . In the 3.6, 3.8 (...) version these two files will have a different but similar name. If you

right click on your qgis start icon > open file path

this should lead you to ...\OSGeo4W64\bin or wherever you have installed qgis. You´ll find the two files there.

qgis-ltr-bin.env:

  • change PATH to the same PATH-line that is saved in qgis-ltr-bin-g7.env (located in the same folder)
  • from qgis-ltr-bin-g7.env add the variables GISBASE,GRASS_PROJSHARE and GRASS_PYTHON

in qgis-ltr.bat:

  • add line 3 from qgis-ltr-grass7.bat (located in the same folder): call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat" (maybe the grass folder has a different name in your version)
  • change PATH to the same PATH-line that is saved in qgis-ltr-grass7.bat (line 7)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.