本机安装了ArcGIS 10.2,同时想学一下开源的 QGIS,就安装了QGIS 3,一切安装正常,但启动的时候报错。
如图:
报错信息
Python错误 : 无法载入插件“MetaSearch”因在调用其classFactory()方法时发生错误 查看消息日志(Python错误)以获取更多的细节信息。
Python错误 : 无法载入插件“processing” 查看消息日志(Python错误)以获取更多的细节信息。
细节
Traceback (most recent call last):
File "C:/PROGRA~1/QGIS3~1.4/apps/qgis/./python\qgis\utils.py", line 335, in startPlugin
plugins[packageName] = package.classFactory(iface)
File "C:/PROGRA~1/QGIS3~1.4/apps/qgis/./python/plugins\MetaSearch\__init__.py", line 29, in classFactory
from MetaSearch.plugin import MetaSearchPlugin
File "C:/PROGRA~1/QGIS3~1.4/apps/qgis/./python\qgis\utils.py", line 672, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/PROGRA~1/QGIS3~1.4/apps/qgis/./python/plugins\MetaSearch\plugin.py", line 34, in
from MetaSearch.dialogs.maindialog import MetaSearchDialog
File "C:/PROGRA~1/QGIS3~1.4/apps/qgis/./python\qgis\utils.py", line 672, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/PROGRA~1/QGIS3~1.4/apps/qgis/./python/plugins\MetaSearch\dialogs\maindialog.py", line 50, in
from owslib.csw import CatalogueServiceWeb # spellok
File "C:/PROGRA~1/QGIS3~1.4/apps/qgis/./python\qgis\utils.py", line 672, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:\PROGRA~1\QGIS3~1.4\apps\Python37\lib\site-packages\owslib\csw.py", line 27, in
from owslib.util import OrderedDict
File "C:/PROGRA~1/QGIS3~1.4/apps/qgis/./python\qgis\utils.py", line 672, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:\PROGRA~1\QGIS3~1.4\apps\Python37\lib\site-packages\owslib\util.py", line 14, in
from dateutil import parser
File "C:/PROGRA~1/QGIS3~1.4/apps/qgis/./python\qgis\utils.py", line 672, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:\Python27\ArcGIS10.2\Lib\site-packages\dateutil\parser.py", line 158
l.append("%s=%s" % (attr, `value`))
^
SyntaxError: invalid syntax
问题分析
解决这个问题还耗费了一点时间,主要是提示的是无法加载 MetaSearch 和 processing 插件,导致我花费了大量的时间来找为什么这2个插件无法加载,去搜索Python错误,但把 stackoverflow 翻了好多也没找到解决方案。后来用女朋友的机器安装了一下QGIS完美运行。仔细思考了一下,既然是Python的原因报错,在其他电脑上又是正常的,那么很有可能是我本机的 ArcGIS 引起的,因为 ArcGIS 10.2 默认的是 Python 2,但 QGIS 3.x 的版本使用的是 Python 3,一看还真是。
在QGIS的设置选项里找到了如下的环境变量
解决方案
解决方案也很比较简单,只要在使用 QGIS 的时候把 PYTHONPATH 重新命名一下,比如 PYTHONPATH_BAK,这样QGIS就可以正常使用了。