当我尝试运行任何GRASS脚本时,收到以下错误消息:
该算法无法运行:-(指定的GRASS 7文件夹
“ C:\ OSGEO4〜1 \ bin \ bin”不包含有效的GRASS 7模块集。
请继续进入“处理设置”对话框,并检查是否正确配置了GRASS
7文件夹
路径似乎不存在,但我找不到位置进行更改;它不再是处理设置中的选项,就像版本2.x中一样。
是否有一种方法可以在QGIS 3.6中运行那些处理脚本,如果可以的话,我该如何调整
编辑:这是我的处理选项的样子
#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。
评论
您是否尝试过使用QGIS 3.4.5(新的LTR),它在此版本中有效。当我首先启动GRASS,然后加载QGIS时,一切都很好。否则,不是。