QGIS 라이브러리와 함께 작동하도록 PyCharm 구성

Aug 15 2020

나는 Anita Graser의 게시물 Anita Graser 및https://gis.stackexchange.com/questions/302774/ OSGeo4W64 QGIS 3.14 설치에서 QGIS 라이브러리에 액세스하고 작업하도록 PyCharm 설치를 설정하려고 할 때

필자는 필요한 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/ 이 오류 메시지가 계속 나타납니다.

302774 게시물에 다음을 포함하도록 권장하는 Qt Plugin Path.를 올바르게 설정했습니다.

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 설치)로 이것을 테스트했는데 오류가 발생하지 않습니다. 당신은 그것을 시도하고 그것이 당신을 위해 작동하는지 볼 수 있습니다.

* 참고 : 한동안 PyCharm이 아닌 PyScripter를 사용해 왔지만 실제로는 아무런 차이가 없습니다. 대신 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()