Настройка PyCharm для работы с библиотеками QGIS

Aug 15 2020

Я слежу за различными сообщениями и руководствами, включая сообщения Аниты Грейзер, Анита Грейзер и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 Plugin Path, который в сообщении 302774 советует включать:

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

в файле pycharm.cmd

Может ли кто-нибудь дать совет, где я могу ошибиться? Я надеюсь, что «Бен В.» среди других может увидеть этот вопрос, поскольку его совет помог другим в сообщении 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()