分享

在Windows中使用PyCharm配置PyQGIS运行环境

 Jcstone 2021-12-30

一 前言

    由于国内外最新版本的PyQGIS环境配置文档少而不全,旧版本文档坑太多,官方文档简单而无用。由于Python、QT、PyQGIS涉及的库/包比较多,难免环境变量配置漏洞百出。笔者花了将近一周时间摸石过河,最后从QGIS本身着手,在Python控制台通过os模块获取环境变量,然后在批处理文件中设置。 为避免大家踩坑,将配置步骤记述如下。 

二 安装QGIS

    在windows中安装QGIS的64位msi独立安装包。

    本人安装版本为QGIS 3.16.15版,安装位置为D:\Program Files\QGIS 3.16.15

三 安装Pycharm

    下载安装PyCharm社区版2021.3(社区版免费无需破解功能够用)。安装位置为     D:\ProgramFiles\JetBrains\PyCharmCommunityEdition2021.3

四 批处理命令文件

   在QGIS安装目录下编写批处理文件:PyCharm_PyQGIS.bat

Title PyGIS_CMD

  set OSGEO4W_ROOT=D:\PROGRA~1\QGIS31~1.15

  call "%OSGEO4W_ROOT%"\bin\o4w_env.bat 

  call "%OSGEO4W_ROOT%"\apps\grass\grass78\etc\env.bat

  set GISBASE=%OSGEO4W_ROOT%\apps\grass\grass78  

  set GRASS_PROJSHARE=%OSGEO4W_ROOT%\share\proj  

  set GRASS_PYTHON=%OSGEO4W_ROOT%\bin\python3.exe  

  set O4W_QT_BINARIES=%OSGEO4W_ROOT%\apps\Qt5\bin  

  set O4W_QT_HEADERS=%OSGEO4W_ROOT%\apps\Qt5\include  

  set O4W_QT_LIBRARIES=%OSGEO4W_ROOT%\apps\Qt5\lib  

  set O4W_QT_PLUGINS=%OSGEO4W_ROOT%\apps\Qt5\plugins  

  set O4W_QT_PREFIX=%OSGEO4W_ROOT%\apps\Qt5  

  set O4W_QT_TRANSLATIONS=%OSGEO4W_ROOT%\apps\Qt5\translations  

  set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis-ltr  

  set QGIS_WIN_APP_NAME=QGIS3.16\QGISDesktop3.16.15  

  set QT_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\qgis-ltr\qtplugins;%OSGEO4W_ROOT%\apps\qt5\plugins

  set VSI_CACHE=TRUE  

  set VSI_CACHE_SIZE=1000000     

  set PYTHONPATH=%OSGEO4W_ROOT%\bin

  set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis-ltr\bin

  set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis-ltr\python

  set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\Qt5\bin

  set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\Qt5\lib

  set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\grass\grass78\lib

  set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\grass\grass78\bin

  set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\Python39\lib

  set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\Python39\lib\site-packages

  set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\Python39\DLLs; 

  set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\Python39\Scripts

  set PYTHONHOME=%OSGEO4W_ROOT%\apps\Python39

  set PYCHARMCOMMUNITYEDITION=D:\ProgramFiles\JetBrains\PyCharmCommunityEdition2021.3\bin; 

  path %PATH%;%OSGEO4W_ROOT%\bin;

  path %PATH%;%OSGEO4W_ROOT%\apps\qgis-ltr\bin;

  path %PATH%;%OSGEO4W_ROOT%\apps\qgis-ltr\python\qgis

  path %PATH%;%OSGEO4W_ROOT%\apps\qgis-ltr\qtplugins

  path %PATH%;%OSGEO4W_ROOT%\apps\qgis-ltr\python\PyQt5

  path %PATH%;%OSGEO4W_ROOT%\apps\grass\grass78\lib;

  path %PATH%;%OSGEO4W_ROOT%\apps\grass\grass78\bin;

  path %PATH%;%OSGEO4W_ROOT%\apps\qt5;

  path %PATH%;%OSGEO4W_ROOT%\apps\qt5\bin;

  path %PATH%;%OSGEO4W_ROOT%\apps\qt5\lib;

  path %PATH%;%OSGEO4W_ROOT%\apps\Python39\Scripts;

  path %PATH%;%OSGEO4W_ROOT%\apps\Python39\lib;

  path %PATH%;%OSGEO4W_ROOT%\apps\Python39\DLLs;

  path %PATH%;%OSGEO4W_ROOT%\apps\Python39\lib\site-packages

 start "PyCharm aware of Quantum GIS" /B "D:\Program Files\JetBrains\PyCharm Community Edition 2021.3\bin\pycharm64.ex


批处理最后一行启动pycharm。根据需要可以改为cmd.exe。则打开python pyqgis运行环境CMD窗口,执行python、pip等命令。因此无需在系统高级设置PythonHome、PythonPath环境变量及添加包含Python在内的Path路径。

四 PyCharm配置Python解释器

   创建Python新项目,【settings】-【Project-XX】-【Python Interpreter】,设置按钮[add],在Base Interpreter中选择<QGIS安装目录>\bin\python-qgis-ltr.bat,作为Python解释器

配置完成后,正常情况则显示:

五 PyCharm配置PyQGIS的QT设计器

    QGIS安装后带有包含QGIS组件的QT设计器,使用十分方便。因此需配置QT设计器和UI转换工具。

    在【Files】-【Settings】窗口【Tools】-【External Tools】中添加QT设计器和UI转换工具。    

点击添加按钮,弹出工具窗口。填写工具名称,在Program下拉框选择<QGIS安装目录>\bin\qgis-ltr-designer.bat,工作目录为工作目录为$ProjectFileDir$(项目文件目录变量)。完成后点击OK按钮

添加PYUIC工具,方法同上:

program 选择<QGIS安装目录>\bin\python3.exe,参数填写为:

-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py

工作目录为$ProjectFileDir$

六 测试

    根据官方代码,添加引用PyQT5 ,编辑过程无错误提示,运行代码未报错,则说明配置成功。

qgis.core *
PyQt5 *
os
QgsApplication.setPrefixPath()

qgs = QgsApplication([])

qgs.initQgis()

qgs.exitQgis()

qgs.exitQgis()

在【tools】-【extranal tools】中执行QT设计器命令,打开正常情况如下:

保存ui文件到项目目录,选择ui文件,tools】-【extranal tools】执行PyUIC。则在项目目录生成py文件,如图untitled.ui生成untitled.py

至此大功告成!

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多