QGISライブラリと連携するようにPyCharmを設定する

Aug 15 2020

私はAnitaGraserの投稿AnitaGraserやhttps://gis.stackexchange.com/questions/302774/ OSGeo4W64 QGIS3.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/ このエラーメッセージが引き続き表示されます

Qtプラグインパスを正しく設定したと確信しています。302774の投稿に以下を含めるようにアドバイスしています。

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

pycharm.cmdファイル内

誰かが私がどこで間違っているのかについてアドバイスを提供できますか?彼のアドバイスが302774の投稿で他の人を助けたので、とりわけ「ベンW」がこの質問を見るかもしれないことを願っていますが、2020年にはうまくいきません。それで、おそらくQGISの新しいバージョンに必要なセットアップに他の異常がありますか?

回答

1 BenW Aug 16 2020 at 16:49

Qtプラグインのパスは問題ないようです。以下は私が現在使用しているバッチファイルです。新しくインストールしたQGIS3.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()