我使用OSGEO4w将QGIS更新到3.6版。

当我尝试运行任何GRASS脚本时,收到以下错误消息:




该算法无法运行:-(指定的GRASS 7文件夹
“ C:\ OSGEO4〜1 \ bin \ bin”不包含有效的GRASS 7模块集。
请继续进入“处理设置”对话框,并检查是否正确配置了GRASS
7文件夹


路径似乎不存在,但我找不到位置进行更改;它不再是处理设置中的选项,就像版本2.x中一样。

是否有一种方法可以在QGIS 3.6中运行那些处理脚本,如果可以的话,我该如何调整


编辑:这是我的处理选项的样子



评论

您是否尝试过使用QGIS 3.4.5(新的LTR),它在此版本中有效。

当我首先启动GRASS,然后加载QGIS时,一切都很好。否则,不是。

#1 楼

如果我使用快捷方式“带有GRASS 7.6.0的QGIS Desktop 3.6.0”打开QGIS,则一切正常。如果我使用快捷方式“ QGIS Desktop 3.6.0”打开QGIS,则会收到与您相同的错误

评论


我想知道为什么GRASS不是从QGIS开始的默认选项。

–车同志
19-09-20在10:29



完全相同的问题再次出现,并通过使用OSGEO4w更新草包来解决。

–车同志
19/12/16在6:07

我根本没有获得带有GRASS x.x.x选项的QGIS Desktopx.x.x。我只有QGIS Desktop选项。有什么事吗

–南希
19/12/23在9:13

如果像我一样,您没有该快捷方式,则可以在已经具有快捷方式的QGIS应用程序所在的文件夹中创建一个指向“ qgis-bin-g7.exe”的新快捷方式。在我的情况下,该文件夹为C:\ OSGeo4W64 \ bin。这将使用当前最新版本的QGIS打开GRASS。我使用的是QGIS 3.4(当前的长期版本),因此我更改了快捷方式,使其指向“ qgis-ltr-bin-g7”。

–黑刺
20年1月7日在17:01

对我来说,我没有这么捷径。这绝对取决于环境。因此,我在qgis批处理文件中添加了行调用“%OSGEO4W_ROOT%\ apps \ grass \ grass78 \ etc \ env.bat”。当然,路径必须正确,并且该行应在该行调用“%〜dp0 \ o4w_env.bat”之后

–安德烈亚斯·穆勒(AndreasMüller)
20年1月9日,14:50

#2 楼

我遇到了同样的问题,但是我设法通过将草文件夹从“ grass76”重命名为“ grass-7.6.0”来解决了这个问题。

#3 楼

根据此草维基文章,将操作系统环境变量GISBASE设置为GRASS安装文件夹可能会解决此问题(例如C:\ OSGeo4W \ apps \ grass \ grass76)。

QGIS 3.8处理选项仍不包含GRASS文件夹的选项。

我指的是Windows操作系统和QGIS 3.8 / GRASS 7.6。

评论


对我来说,这是很有意义的:在QGIS 3.8的处理选项中没有GRASS文件夹。还有一些其他与GRASS相关的文件夹,但是没有什么与GRASS明显不同。我正在使用QGIS 3.8.1。关于塔拉斯(Taras)的建议,OP不启动“带有GRASS的QGIS”,这对于我目前在我的机器上不是一个选择,并且可能也不是OP的一个选择。我知道我过去曾经有过这种选择,我不知道在这台新机器(对我而言)上安装QGIS会错过它时我做了些什么。似乎添加新的环境路径对我有用。

–乳木果
19-10-17在17:22



为我修复它!

–foobarbecue
19年11月9日17:36

对于Windows的QGIS 3.14,上面的答案不再有效。但是,在QGIS bin文件夹的qgis-bin.env文件中设置路径可以解决此问题。 “ QGIS设置”对话框仍然不包含此设置。

– Nicolo
20-10-1在7:32



#4 楼

关于您的问题的一部分


“看来该路径不存在,但是我找不到改变它的地方;不是处理设置中的一个选项
,如版本2.x。“


您可以通过

设置>选项>处理>提供程序> GRASS


基于QGIS 3.0.3版本



可以在其中调整'GRASS7 folder'的地方,只需双击它即可。

顺便说一句,GRASS在我的QGIS 3.0.3版本上工作正常。

评论


该屏幕快照来自哪个版本?我已经附上了我的附件,看来您有比我更多的选择!

–坎丹
19年2月27日在9:08

QGIS 3.0.3版本

–塔拉斯
19年2月27日在9:09

您可能没有在其中启动带有GRASS的QGIS

–塔拉斯
19年2月27日在9:12

qgis 3.6和3.10中缺少“ GRASS7文件夹”行。

–foobarbecue
19年11月9日在17:34

但是,它对于LTR是稳定的(QGIS 3.4)

–塔拉斯
19年11月9日在20:17

#5 楼

对我来说,启动“正常” qgis时似乎缺少一些环境变量。我通过更改qgis-ltr-bin.env和qgis-ltr.bat在QGIS 3.4.13中修复了此问题。在3.6、3.8(...)版本中,这两个文件将具有不同但相似的名称。如果您

右键单击qgis开始图标>打开文件路径

,这应该会将您引导到... \ OSGeo4W64 \ bin或安装了qgis的任何位置。您将在此处找到两个文件。使用标准文本编辑器(例如记事本)打开它们进行更改:

qgis-ltr-bin.env:


将PATH更改为相同的PATH-从qgis-ltr-bin-g7.env中保存在qgis-ltr-bin-g7.env中的行(位于同一文件夹中)
,添加变量GISBASE,GRASS_PROJSHARE和GRASS_PYTHON

在qgis-ltr.bat中:


从qgis-ltr-grass7.bat中添加第3行(位于同一文件夹中):call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"(也许草文件夹在其中具有不同的名称您的版本)
将PATH更改为与qgis-ltr-grass7.bat(第7行)中保存的相同的PATH行


评论


现在感谢QGIS 3.5.15的支持。

– natan
20-2-23在6:45

#6 楼

与@Friedemann在QGIS 3.10中工作的修复程序相同,将C:\ OSGeo4W64 \ apps \ grass \ grass78文件夹更改为C:\ OSGeo4W64 \ apps \ grass \ grass-7.8.0名称更改修复允许在QGIS 3.10中打开草工具箱功能。但是,当执行GRASS操​​作时,所有操作都会失败,并在日志中出现以下错误:


系统找不到指定的路径。 '“”'不被识别为内部或外部命令,可操作程序或批处理文件。 “ grass78”),如另一个答案所述,GRASS操​​作现在可以在QGIS中正确执行。这似乎是正确的解决方案。

评论


感谢您的输入,您能否将我指向一个资源,以了解在哪个位置设置哪个变量?

–坎丹
19年11月26日在6:59

我使用Windows 10,因此在Windows资源管理器中:右键单击此PC,依次选择“属性”,“高级系统设置”,“高级”选项卡和“环境变量”。单击“新建...”,然后在“变量名称”中输入“ GISBASE”,在“变量值”中输入“ C:\ OSGeo4W64 \ apps \ grass \ grass78” [注意:您的路径可能会有所不同,具体取决于QGIS和/或GRASS的版本]。单击确定,您应该看到新创建的变量已添加到列表中。

–狼人
19年11月26日在20:52



#7 楼

转到C:\Program Files\QGIS 3.12\apps\grass\grass78\并将“ bin”文件夹直接复制到C:\Program Files\QGIS 3.12\bin\中。

现在,GRASS模块位于指定的路径C:\Program Files\QGIS 3.12\bin\bin中。
完成

#8 楼

在处理工具箱(带有QGIS)中使用GRASS的另一种解决方案是
,在C:\OSGeo4W64\apps\qgis\python\processing\algs\grass7\中找到文件Grass7Utils.py并替换以下术语:



grass-7.grass7 in位于第223行或其附近的代码
然后由位于位于第229行及其附近的代码中的for version in ['', '7', '76', '74', '72', '71', '70']:for version in ['', '7', '78', '76', '74', '72', '71', '70']:”。


#9 楼

通常,当使用选项“ Qgis Desktop 3.X”打开Qgis时,使用此界面打开Qgis时会出现此消息,而Qgis是在没有GRASS Library的情况下收费的。因此,当有人尝试使用GRASS工具时,Qgis找不到GRASS库。
要使用GRASS工具,必须使用“带有GRASS 7的Qgis Desktop 3.X”打开Qgis。