6

I would like to work on Python script with tools from qgis in a standalone software (like Pycharm or IDLE). I am quite new with Python programming and with setting up a work environnement.

In order to create the link between Python and the qgis module, i made the Batch file like this:

@echo off
SET OSGEO4W_ROOT=C:\OSGeo4W64
call "%OSGEO4W_ROOT%"\bin\o4w_env.bat
call "%OSGEO4W_ROOT%"\apps\grass\grass76\etc\env.bat
@echo off
path %PATH%;%OSGEO4W_ROOT%\apps\qgis\bin
path %PATH%;%OSGEO4W_ROOT%\apps\grass\grass76\lib
path %PATH%;C:\OSGeo4W64\apps\Qt5\bin
path %PATH%;C:\OSGeo4W64\apps\Python37\Scripts
set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis\python
set PYTHONHOME=%OSGEO4W_ROOT%\apps\Python37
set PATH=C:\Program Files\Git\bin;%PATH%
start "PyCharm aware of Quantum GIS" /B "C:\Program Files\JetBrains\PyCharm\bin\pycharm64.exe"
cmd.exe

After I run this file, I obtain a cmd.exe window in which I try to import qgis.core and PyQt5 to see if it works correctly:

enter image description here

It looks like it's working. Perfect! Then, this .batch file opens PyCharm in which I try to import qgis.core in a new script, after stting up that the Python Interpreter is the on from QGIS (direction :C:\OSGeo4W64\apps\Python37\python.exe)

But when I try to import qgis.core, I get this message:

Traceback (most recent call last):
 File "<input>", line 1, in <module>
 File "C:\Program Files\JetBrains\PyCharm\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
 module = self._system_import(name, *args, **kwargs)
 File "C:\OSGEO4~1\apps\qgis\python\qgis\__init__.py", line 70, in <module>
 from qgis.PyQt import QtCore
 File "C:\Program Files\JetBrains\PyCharm\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
 module = self._system_import(name, *args, **kwargs)
 File "C:\OSGEO4~1\apps\qgis\python\qgis\PyQt\QtCore.py", line 24, in <module>
 from PyQt5.QtCore import *
 File "C:\Program Files\JetBrains\PyCharm\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
 module = self._system_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'PyQt5.QtCore'

However, when I try "import PyQt5", it looks like it's working, but still importing qgis.core doesn't work and leave me with the same message.

Does anyone have an idea of how I can fix this?

I just want to be able to script tools with the qgis.core module but I'm out of ideas.

PolyGeo
65.5k29 gold badges115 silver badges349 bronze badges
asked Oct 2, 2019 at 14:59
0

1 Answer 1

8

Try to use this .bat file to launch PyCharm:

@ECHO off
set OSGEO4W_ROOT=C:\OSGeo4W
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"
path %OSGEO4W_ROOT%\apps\qgis\bin;%PATH%
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis
set GDAL_FILENAME_IS_UTF8=YES
set VSI_CACHE=TRUE
set VSI_CACHE_SIZE=1000000
set QT_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\qgis\qtplugins;%OSGEO4W_ROOT%\apps\qt5\plugins
SET PYCHARM="C:\Program Files\JetBrains\PyCharm Community Edition 2020年1月4日\bin\pycharm64.exe"
set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis\python
set PYTHONHOME=%OSGEO4W_ROOT%\apps\Python39
set PYTHONPATH=%OSGEO4W_ROOT%\apps\Python39\lib\site-packages;%PYTHONPATH%
set QT_QPA_PLATFORM_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\Qt5\plugins\platforms
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis
start "PyCharm aware of QGIS" /B %PYCHARM% %*
answered Oct 3, 2019 at 9:26
0

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.