无法在Ubuntu 16.04的QGIS 2.18中运行Grass算法


9

我通过UbuntuGIS存储库安装了QGIS和GRASS。如果我尝试执行任何GRASS 6或7算法,则会收到以下错误消息:

"This algorithm cannot be run :-( It seems that GRASS GIS 7 is not correctly installed and configured in your system. Please install it before running GRASS GIS 7 algorithms."

我检查了有关此问题的其他问题,但是大多数问题与Windows系统上的安装程序有关:

在linux上,我不需要配置GRASS文件夹的路径,因为QGIS有关配置外部应用程序的帮助告诉我。通过键入从草壳中跑出grass。外壳调用的Grass版本为GRASS 7.2.0 (2016)

此外,我检查了QGIS工具箱中附加提供程序菜单中的GRASS 6和7是否已激活。

有什么建议可以解决此问题?

编辑

同时,我qgis python-qgis qgis-plugin-grass从官方QGIS存储库中完全卸载并重新安装...但是错误仍然存​​在。

编辑2 在“消息”面板中检查qgis的日志,我在“插件”选项卡下发现草插件未正确加载:

2017-01-23T14:10:22 1   Failed to load /usr/lib/qgis/plugins/libgrassplugin7.so (Reason: Cannot load library /usr/lib/qgis/plugins/libgrassplugin7.so: (libgrass_gis.7.0.3.so: cannot open shared object file: No such file or directory))
2017-01-23T14:10:22 1   Failed to load /usr/lib/qgis/plugins/libgrassprovider7.so (Reason: Cannot load library /usr/lib/qgis/plugins/libgrassprovider7.so: (libgrass_gis.7.0.3.so: cannot open shared object file: No such file or directory))
2017-01-23T14:10:22 1   Failed to load /usr/lib/qgis/plugins/libgrassrasterprovider7.so (Reason: Cannot load library /usr/lib/qgis/plugins/libgrassrasterprovider7.so: (libgrass_gis.7.0.3.so: cannot open shared object file: No such file or directory))

对于Edit2:似乎已搜索GRASS 7.0.3,但是磁盘上只有7.2.0。不要混合使用Ubuntugis和非Ubuntu软件包。
AndreJ

@AndreJ我认为这种混淆可能是主要问题。我可能已经添加了ubuntugis和qgis存储库。我尝试仅添加qgis存储库并重新安装所有存储库。但是它还没有解决。现在,尽管安装了插件,但我没有收到任何有关该插件已加载的消息。关于如何清理剩下的烂摊子的任何建议?
joaoal

1
将GRASS降级到7.0.3,或删除QGIS debian软件包(使用purge,请参阅askubuntu.com/questions/187888/… ),返回ubuntgis并按照我的回答中的解决方法进行操作。
AndreJ

Answers:


9

我在QGIS的Ubuntugis版本和GRASS 7.2.0版本中遇到相同的错误。

似乎在处理中尚未正确采用7.2。已经有一张票了:https : //hub.qgis.org/issues/16019https://lists.osgeo.org/pipermail/qgis-developer/2017-January/046671.html

解决方法是,您可以将/usr/share/qgis/python/plugins/processing/algs/grass7/Grass7Utils.py251行(作为sudo)编辑为

            command = 'grass72 ' + Grass7Utils.grassMapsetFolder() \

和线103 Grass7AlgorithmProvider.py

    return 'grass72'

或从主要的Ubuntu存储库降级到GRASS 7.0.3。

GRASS 6命令不适用于GRASS 7,因此您可以停用161 GRASS命令。


邮件列表https://lists.osgeo.org/pipermail/qgis-user/2017-January/038907.html的另一种解决方法

sudo ln -s /usr/bin/grass72 /usr/bin/grass70


更新

也有报道http://hub.qgis.org/issues/16110和固定http://hub.qgis.org/projects/quantum-gis/repository/revisions/099e7a77f2c32f469539f542a31df7b0d4b77dd3这应该GRASS版本7.0后续工作7.3

不幸的是,该修补程序尚未应用于QGIS 2.18.4,因此仍需要解决方法。


好的。解决方法对我不起作用。我试过了但是失败了。但是,通过突触软件包管理器降级到Grass 7.0可以解决问题。我如何确保在下一个软件更新中它不会升级到7.2。再次?我已经从来源列表中删除了qgis和ubuntugis信息库,但是似乎官方的ubuntu信息库已经包含草7.2 ...至少如果我打开它为我提供7.2的软件中心。
joaoal

1
packages.ubuntu.com/…,我仅出于热情而看到GRASS 7.2。也许软件中心仍然列出了ubuntugis条目。apt-cache policy grass在“终端”窗口中尝试查看实际可用的内容。
AndreJ

该符号链接对我不起作用。。我在Mint上使用从源代码编译并从输出文件夹运行的qgis。我还有其他配置要编辑吗?谢谢!
matteo

2
不幸的是,QGIS和ubuntugis经常不同步。因此,这次我看到GRASS进行了升级,所以没有安装它。只是想知道如何找出正确的时机。官方渠道似乎大多数时候都忽略了这个非常烦人的问题。每三个月左右出现一次QGIS损坏就不好玩了。
Bernd V.

@BerndV。通常,我通常首先在虚拟框中安装新的Linux版本以进行测试。
AndreJ

4

我通过从qgis存储库重新安装grass 7.0.3来解决此问题。Ubuntugis存储库中的草是7.2版,QGIS不支持。

  1. 通过sudo apt-get删除GRASS GIS删除草草芯草doc-doc grass-gui

  2. 禁用ubuntugis不稳定的存储库

  3. sudo apt-get install grass grass-gui

这个对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.