QGIS 3.28.9-Firenze中EnMAP-Box3(3.13.2)安装报错求助
问题描述
在QGIS 3.28.9-Firenze版本中安装EnMAP-Box3(3.13.2)插件,点击工具内的「安装缺失包」选项后,触发如下Python执行错误:
执行Python代码时发生错误:
subprocess.CalledProcessError: 命令 'C:\Program Files\QGIS 3.28.9\apps\Python39\python3.exe -m pip list' 返回非零退出状态1。
回溯(最近的调用最后):
文件 "C:\Users/rena.shereef/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\enmapboxplugin\enmapbox\gui\enmapboxgui.py",第807行,在showPackageInstaller中
w.addPackages(requiredPackages())
文件 "C:\Users/rena.shereef/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\enmapboxplugin\enmapbox\dependencycheck.py",第1043行,在addPackages中
self.loadPIPVersionInfo(packages)
文件 "C:\Users/rena.shereef/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\enmapboxplugin\enmapbox\dependencycheck.py",第974行,在loadPIPVersionInfo中
self.startTask(task)
文件 "C:\Users/rena.shereef/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\enmapboxplugin\enmapbox\dependencycheck.py",第989行,在startTask中
qgsTask.run()
文件 "C:\Users/rena.shereef/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\enmapboxplugin\enmapbox\dependencycheck.py",第292行,在run中
process = subprocess.run(cmdList,
文件 "C:\PROGRA1\QGIS321.9\apps\Python39\lib\subprocess.py",第528行,在run中
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: 命令 'C:\Program Files\QGIS 3.28.9\apps\Python39\python3.exe -m pip list' 返回非零退出状态1。Python版本: 3.9.5 (tags/v3.9.5:0a7dcbd, May 3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)]
QGIS版本: 3.28.9-Firenze Firenze, 66f4d63ad4
错误核心是QGIS内置Python执行pip list命令失败,导致插件无法自动检查和安装依赖。
解决步骤
1. 手动验证并修复QGIS内置pip
- 打开OSGeo4W Shell(在Windows开始菜单的QGIS文件夹中找到)
- 先执行命令测试pip状态:
python -m pip list - 如果直接报错,先升级pip:
python -m pip install --upgrade pip - 若升级后仍异常,重新安装pip:
python -m ensurepip --upgrade
2. 清除异常pip配置
- 检查当前pip配置,查看是否有代理或镜像设置干扰:
pip config list - 若存在不必要的代理配置,执行以下命令清除:
pip config unset proxy pip config unset global.proxy
3. 手动安装EnMAP-Box依赖包
- 找到EnMAP-Box的依赖列表(可查看插件目录下的
dependencycheck.py文件,或参考插件内置的依赖检测逻辑) - 使用QGIS内置pip逐个安装所需依赖,格式如下:
python -m pip install 包名==指定版本号
4. 检查权限并以管理员身份运行
- 确认
C:\Users\[你的用户名]\AppData\Roaming\QGIS\QGIS3目录有读写权限 - 右键QGIS图标,选择「以管理员身份运行」,再尝试使用插件的「安装缺失包」功能
5. 重置QGIS用户配置文件
- 备份当前用户配置目录:
C:\Users\[你的用户名]\AppData\Roaming\QGIS\QGIS3\profiles\default - 打开QGIS时按住
Ctrl键,选择「重置配置」,之后重新安装EnMAP-Box插件并尝试安装依赖
内容的提问来源于stack exchange,提问作者Rena Shereef

