Ubuntu系统下如何通过PyCharm运行QGIS Python编辑器
问题解决方案:PyCharm调用QGIS Processing及正确安装方式
一、优先方案:直接使用本地已安装的QGIS环境(无需重新安装)
你已在Ubuntu 22.04上安装QGIS 3.22.7,直接在PyCharm中配置QGIS自带的Python解释器即可使用Processing模块,步骤如下:
1. 获取QGIS的Python解释器路径
打开QGIS,进入Python控制台,执行以下代码获取路径:
import sys print(sys.executable)
典型路径为/usr/bin/python3或/usr/lib/qgis/bin/python3,记下该路径。
2. 在PyCharm中配置解释器
- 打开PyCharm,依次点击
File -> Settings -> Project: [你的项目名] -> Python Interpreter - 点击右上角齿轮图标,选择
Add - 选择
System Interpreter,找到刚才获取的QGIS Python路径,点击OK应用配置。
3. 配置QGIS依赖路径及初始化代码
QGIS的Processing模块需要加载核心库,需在代码开头添加初始化逻辑:
import sys import os # 添加QGIS Python库路径 sys.path.append('/usr/lib/qgis/python') sys.path.append('/usr/lib/qgis/python/plugins') # 设置库文件路径 os.environ['LD_LIBRARY_PATH'] = '/usr/lib/qgis/lib' # 初始化QGIS应用 from qgis.core import QgsApplication QgsApplication.setPrefixPath('/usr', True) qgs_app = QgsApplication([], False) qgs_app.initQgis() # 初始化Processing模块 import processing from processing.core.Processing import Processing Processing.initialize() # --------------------- 你的业务代码 --------------------- rasterfile = '/home/iliamous/PycharmProjects/winbank/indicators/tmean/rcp_2_6/cnrm_cerfacs_cm5_r1i1p1_knmi_racmo22e/tmean_rcp26_CNRM-CERFACS-CNRM-CM5_KNMI-RACMO22E_r1i1p1_20210101-20301231.tiff' shapefile = '/home/iliamous/PycharmProjects/winbank/tk_egsa_dissolved/tk_egsa_disolved.shp' ofile = '/home/iliamous/PycharmProjects/winbank/zonal_stats.csv' processing.run("native:zonalstatisticsfb", {'INPUT':shapefile, 'INPUT_RASTER':rasterfile, 'RASTER_BAND':1, 'COLUMN_PREFIX':'_', 'STATISTICS':[0,2], 'OUTPUT':ofile}) # --------------------- 清理资源 --------------------- qgs_app.exitQgis()
二、conda安装QGIS的正确方式
你之前的错误源于使用了conda-forge/label/broken无效源,该源用于存放测试用损坏包,正常用户不应使用。正确步骤如下:
1. 创建独立conda环境(推荐,避免污染base环境)
conda create -n qgis_env python=3.9 conda activate qgis_env
(QGIS 3.22对Python 3.9兼容性最佳,若需Python 3.10可尝试,但可能存在依赖冲突)
2. 使用conda-forge主源安装QGIS
conda install -c conda-forge qgis
安装完成后,在PyCharm中选择该conda环境作为解释器即可直接使用Processing模块。
错误原因分析
你执行的conda install -c conda-forge/label/broken qgis命令指定了错误源,conda-forge/label/broken路径下不存在有效repodata文件,服务器返回404错误,后续解析非JSON内容时触发JSON解码异常。
内容的提问来源于stack exchange,提问作者CoolMathematician
相关产品推荐
相关产品推荐

