การกำหนดค่า PyCharm ให้ทำงานกับไลบรารี QGIS

Aug 15 2020

ฉันติดตามโพสต์และบทช่วยสอนต่างๆรวมถึงโพสต์ของAnita Graser Anita Graserและhttps://gis.stackexchange.com/questions/302774/ ขณะที่ฉันพยายามตั้งค่าการติดตั้ง PyCharm เพื่อเข้าถึงและทำงานกับไลบรารี QGIS ในการติดตั้ง OSGeo4W64 QGIS 3.14 ของฉัน

ฉันได้สร้างไฟล์ pygis.cmd และ pycharm.cmd ที่จำเป็นและดูเหมือนว่าจะทำในสิ่งที่ควรทำ pycharm.cmd ของฉันเปิดใช้งาน PyCharm สำเร็จ

> @echo off
SET OSGEO4W_ROOT=C:\OSGeo4W64
call "%OSGEO4W_ROOT%"\bin\o4w_env.bat
call "%OSGEO4W_ROOT%"\bin\qt5_env.bat
call "%OSGEO4W_ROOT%"\bin\py3_env.bat
call "%OSGEO4W_ROOT%"\apps\grass\grass78\etc\env.bat
@echo off
rem path %PATH%;%OSGEO4W_ROOT%\apps\qgis
path %PATH%;%OSGEO4W_ROOT%\apps\qgis\bin
path %PATH%;%OSGEO4W_ROOT%\apps\grass\grass78\lib
path %PATH%;C:\OSGeo4W64\apps\Qt5\bin
rem path %PATH%;C:\OSGeo4W64\apps\qgis\python\plugins
path %PATH%;C:\OSGeo4W64\apps\Python37\Scripts
rem path %PATH%;C:\OSGeo4W\apps\Python37

set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis\python
set PYTHONHOME=%OSGEO4W_ROOT%\apps\Python37

set PATH=C:\Program Files\Git\bin;%PATH%
set QT_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\qgis\qtplugins;%OSGEO4W_ROOT%\apps\Qt5\plugins

start "PyCharm aware of QGIS" /B "C:\Users\b8060507\AppData\Local\JetBrains\PyCharm Community Edition 2019.3.3\bin\pycharm64.exe" 

อย่างไรก็ตามแม้จะทำตาม https://gis.stackexchange.com/questions/302774/ ฉันยังคงได้รับข้อความแสดงข้อผิดพลาดนี้ปรากฏขึ้น

ฉันแน่ใจว่าฉันได้ตั้งค่าเส้นทางปลั๊กอิน Qt ของฉันอย่างถูกต้องซึ่งโพสต์ 302774 แนะนำให้รวม:

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

ในไฟล์ pycharm.cmd

ใครสามารถให้คำแนะนำเกี่ยวกับจุดที่ฉันอาจจะผิดพลาด ฉันหวังว่า 'Ben W' ในหมู่คนอื่น ๆ อาจเห็นคำถามนี้เนื่องจากคำแนะนำของเขาช่วยผู้อื่นในโพสต์ 302774 แต่มันไม่ได้ผลสำหรับฉันในปี 2020 ดังนั้นอาจมีความผิดปกติอื่น ๆ ในการตั้งค่าที่จำเป็นสำหรับ QGIS รุ่นใหม่กว่า?

คำตอบ

1 BenW Aug 16 2020 at 16:49

เส้นทางปลั๊กอิน Qt ของคุณดูเรียบร้อย ด้านล่างนี้คือไฟล์แบตช์ที่ฉันกำลังใช้อยู่ ฉันได้ทดสอบสิ่งนี้ด้วย QGIS 3.14.15 (การติดตั้ง OSGeo4W) ที่เพิ่งติดตั้งและไม่ได้รับข้อผิดพลาดใด ๆ คุณสามารถลองและดูว่าเหมาะกับคุณหรือไม่

* หมายเหตุ: ฉันใช้ PyScripter มากกว่า PyCharm มาระยะหนึ่งแล้ว แต่จริงๆแล้วมันไม่ควรสร้างความแตกต่างใด ๆ เพียงแค่เปลี่ยนบรรทัดสุดท้ายเพื่อเริ่ม PyCharm แทน

@echo off
SET OSGEO4W_ROOT=C:\OSGeo4W64
call "%OSGEO4W_ROOT%"\bin\o4w_env.bat
call "%OSGEO4W_ROOT%"\bin\qt5_env.bat
call "%OSGEO4W_ROOT%"\bin\py3_env.bat
@echo off
path %PATH%;%OSGEO4W_ROOT%\apps\qgis\bin
path %PATH%;C:\OSGeo4W64\apps\Qt5\bin
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT:\=/%/apps/qgis
set GDAL_FILENAME_IS_UTF8=YES
rem Set VSI cache to be used as buffer, see #6448
set VSI_CACHE=TRUE
set VSI_CACHE_SIZE=1000000
set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis\python
set PYTHONHOME=%OSGEO4W_ROOT%\apps\Python37
set QT_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\qgis\qtplugins;%OSGEO4W_ROOT%\apps\qt5\plugins

start "PyScripter aware of QGIS" /B "C:\Program Files\PyScripter\PyScripter.exe"

เริ่ม PyScripter ด้วยไฟล์แบตช์นี้ฉันสามารถเรียกใช้สิ่งต่อไปนี้ได้โดยไม่มีข้อผิดพลาด

ในการทดสอบไลบรารี QGIS:

from qgis.core import *
QgsApplication.setPrefixPath("C:/OSGeo4W/apps/qgis", True)
qgs = QgsApplication([], False)
qgs.initQgis()
qgs.exitQgis()

และเพื่อทดสอบ PyQt:

from PyQt5.QtWidgets import QApplication, QMainWindow
import sys

class MyDialog(QMainWindow):

    def __init__(self):
        QMainWindow.__init__(self)
        self.setGeometry(250, 250, 500, 350)

def main():
    app = QApplication(sys.argv)
    w = MyDialog()
    w.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()