QGIS 3.44.12 启动加速 --- 修改总结
问题根因
QGIS 启动时阻塞在"Restoring loaded plugins"阶段,由两个原因叠加导致:
- 全局网络阻塞 :
checkVersion和NewsFeed在启动时发起网络请求,网络环境无代理无法直连外网,TCP 连接等待超时 - NextGIS 插件注册表挂死 :
quick_map_services和qtiles的QmsSettings.__update_settings()/QTilesSettings.__update_settings()调用QSettings("NextGIS", "...")访问 Windows 注册表HKCU\Software\NextGIS\...,在你的系统上该注册表操作会阻塞超时
修改的文件(共 4 个)
1. C:\Program Files\QGIS 3.44.12\apps\qgis-ltr\resources\qgis_global_settings.ini
| 设置 | 原值 | 新值 | 作用 |
|---|---|---|---|
checkVersion |
true |
false |
启动时不联网检查新版本 |
NewsFeed\http00008000\disabled |
false |
true |
欢迎页不联网获取新闻 |
monitorDirectoriesInBrowser |
true |
false |
启动时不初始化文件系统监控 |
⚠️ 此文件位于
Program Files,需要管理员权限才能修改。如果 QGIS 更新,此文件会被覆盖,需要重新修改。
2. %APPDATA%\QGIS\QGIS3\profiles\default\python\plugins\quick_map_services\core\settings.py
第 34-36 行,注释掉 __update_settings() 调用:
python
# 修改前
def __init__(self) -> None:
self.__settings = QgsSettings()
self.__update_settings()
# 修改后
def __init__(self) -> None:
self.__settings = QgsSettings()
# Hangs on Windows due to QSettings registry access in __update_settings
# self.__update_settings()
3. %APPDATA%\QGIS\QGIS3\profiles\default\python\plugins\qtiles\core\settings.py
第 52-54 行,同样注释掉 __update_settings() 调用:
python
# 修改前
def __init__(self) -> None:
self.__settings = QgsSettings()
self.__update_settings()
# 修改后
def __init__(self) -> None:
self.__settings = QgsSettings()
# Hangs on Windows due to QSettings registry access in __update_settings
# self.__update_settings()
4. %APPDATA%\QGIS\QGIS3\profiles\default\QGIS\QGIS3.ini
[PythonPlugins] 部分:
ini
[PythonPlugins]
db_manager=false
processing=false
MetaSearch=false
grassprovider=false
dissect_dissolve_overlaps_sagang=false
niva_qgis=false
VectorBender=true
QMetaTiles=true
basemaps=true
qtiles=true
quick_map_services=true
注意:确保没有
watchDogTimestamp\quick_map_services和watchDogTimestamp\qtiles条目(如果存在,删除之)。
重新安装 QGIS 后需要的操作
必做项(4 步)
-
修改全局设置(需管理员权限)
编辑: C:\Program Files\QGIS <版本>\apps\qgis-ltr\resources\qgis_global_settings.ini 修改: checkVersion=false, NewsFeed...disabled=true, monitorDirectoriesInBrowser=false -
修复 quick_map_services 插件
编辑: %APPDATA%\QGIS\QGIS3\profiles\default\python\plugins\quick_map_services\core\settings.py 找到: def __init__(self) -> None: 注释: self.__update_settings() -
修复 qtiles 插件
编辑: %APPDATA%\QGIS\QGIS3\profiles\default\python\plugins\qtiles\core\settings.py 找到: def __init__(self) -> None: 注释: self.__update_settings() -
清理 watchDogTimestamp(如果插件提示"previously crashed")
编辑: %APPDATA%\QGIS\QGIS3\profiles\default\QGIS\QGIS3.ini 删除: watchDogTimestamp\quick_map_services=... 删除: watchDogTimestamp\qtiles=... 确保: quick_map_services=true, qtiles=true
可选优化
-
Windows Defender 排除:管理员 PowerShell 运行:
powershellAdd-MpPreference -ExclusionPath "C:\Program Files\QGIS 3.44.12" -
禁用不用的插件:QGIS 菜单 → Plugins → Manage and Install Plugins,禁用不需要的插件
影响评估
| 修改 | 影响 |
|---|---|
checkVersion=false |
不再自动通知新版本,需手动检查 |
NewsFeed disabled |
欢迎页不再显示 QGIS 新闻推送 |
monitorDirectoriesInBrowser=false |
外部修改的目录不会自动刷新 |
跳过 __update_settings() |
如果从旧版 QMS/qtiles 升级,旧设置不会自动迁移到新格式(但新安装无此问题) |