PyCharm QGIS环境配置

Pycharm环境配置

QGIS的脚本开发实际上有两种,一种是直接在QGIS自己的Python Console中写代码并运行,这样的最大好处是没有任何的环境配置要求,而且你可以用iface这个万能API。但是一方面用惯了IDE看着丑陋的编辑器很别扭,另一方面,也就是另一种脚本开发,QGIS脚本实际上是脱离QGIS软件本身的,我们只是需要调用QGIS的一些包来完成目标操作,如果你去Google查,这种叫做standalone script

两种方式使Pycharm可以识别QGIS包

1、设置解释器方式

首先请确保Pycharm版本为2020,或2018。Pycharm 2019版本有关于组件识别不正确的问题,请不要使用。

新建一个项目,选择Python解释器为:D:\QGIS\bin\python-qgis.bat,这个批处理会自动设置环境变量,然后启动python解释器。

这样设置之后,PyCharm可以读取到qgis相关的包,包括qgis.core、qgis.gui等等。如果不放心,还可以继续下面关于环境变量的配置。

注:此时的PyCharm无法使用processing工具包,如果需要使用请在代码中加入:

import sys
sys.path.append('D:\\Software\\QGIS\\apps\\qgis\\python\\plugins') 
# 一定要指向processing的所在目录

新建PYTHONPATH,将下列路径加入其中:

PYTHONPATH
经过我的确认,上图中前两条环境变量直接决定解释器能否“意识到”(aware of)Qgis包。如果你使用的是VScode这样的编辑器,由于其使用的代码提示插件,比如pylint,属于静态解析,而qgis中很多对象运行过程中才会创建,所以VScode中只进行上述配置后,运行下列语句还是会报错:

from qgis.core import QgsProject

他会提示你No Module named QgsProject in qgis.core,实测在PyCharm中可以跑的程序,VScode只要设置成以python-qgis.bat作为解释器就可以正常运行。当然标一片红看着很难受,作为解决方案,我们可以在VScode的settings.json中加入下列语句:

"python.linting.pylintArgs":["--generate-members"]
2、批处理文件启动方式

方式二是我在使用Pycharm 2019时找到的解决方案,解决了No module named qgis.core的问题,但是有包中内容无法解析的问题。升级2020之后用方法一解决了,以下内容不保证可靠。

想要在Pycharm中开发QGIS的插件,核心问题在于保证Pycharm中的编译环境和QGIS中的python控制台一致。为了做到这个目标,我们写一个批处理文件,来确保开启Pycharm时环境变量和QGIS中一致:

创建一个start_up.cmd文件,编辑,加入下列命令:

  @echo off
  SET OSGEO4W_ROOT=D:\Software\QGIS
  call "%OSGEO4W_ROOT%"\bin\o4w_env.bat
  call "%OSGEO4W_ROOT%"\apps\grass\grass78\etc\env.bat
  @echo off
  path %PATH%;%OSGEO4W_ROOT%\apps\qgis\bin
  path %PATH%;%OSGEO4W_ROOT%\apps\grass\grass78\lib
  path %PATH%;%OSGEO4W_ROOT%\apps\Qt5\bin
  path %PATH%;%OSGEO4W_ROOT%\apps\Python37\Scripts
  path %PATH%;%OSGEO4W_ROOT%\bin
  path %PATH%;%OSGEO4W_ROOT%\apps\Python37\DLLs
  path %PATH%;%OSGEO4W_ROOT%\apps\Python37\lib
  path %PATH%;%OSGEO4W_ROOT%\apps\Python37\lib\site-packages
  path %PATH%;%OSGEO4W_ROOT%\apps\qgis\bin
  path %PATH%;%OSGEO4W_ROOT%\apps\qgis\python
  path %PATH%;%OSGEO4W_ROOT%\apps\qgis\python\qgis
  path %PATH%;%OSGEO4W_ROOT%\apps\Qt5
  path %PATH%;%OSGEO4W_ROOT%\apps\qgis\qtplugins
  path %PATH%;%OSGEO4W_ROOT%\apps\qgis\python\PyQt5

  set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis\python
  set PYTHONHOME=%OSGEO4W_ROOT%\apps\Python37
  
  set PATH=C:\Program Files;%PATH%
  start "PyCharm aware of Quantum GIS" /B "D:\Software\PyCharm 2019.3.3\bin\pycharm64.exe"

注意修改$OSGEO4W_ROOT$,以及Pycharm启动文件所在的路径即可。

双击执行会自动打开Pycharm,确保Pycharm的Interpreter是"*\QGIS\bin\python3.exe",此时输入

from qgis.core import *

print("test")

执行成功则环境搭建成功,之后启动Pycharm编写QGIS插件都需要执行批处理文件。

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值