[QGIS-Developer] why stop work python.exe in pyqgis standalone script anytime?

xristosss20 saxri89 at gmail.com
Sat Jul 8 17:31:54 PDT 2017


i want to create a simple standalone pyqgis script but i have some
Unexpectedly errors.

here my .bat file :

@echo off
SET OSGEO4W_ROOT=C:\OSGeo4W
call "%OSGEO4W_ROOT%"\bin\o4w_env.bat
call "%OSGEO4W_ROOT%"\apps\grass\grass-7.2.1\etc\env.bat
@echo off
path
%PATH%;%OSGEO4W_ROOT%\apps\qgis\bin;%OSGEO4W_ROOT%\apps\grass\grass-7.2.1\lib
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT:\=/%/apps/qgis
SET PYCHARM="C:\Program Files\JetBrains\PyCharm 2017.1.4\bin\pycharm.exe"

set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis\python;
set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\Python27\Lib\site-packages;

set QGISPATH=%OSGEO4W_ROOT%\apps\qgis

start "PyCharm aware of QGIS" /B %PYCHARM% %*
first i try to see if processing tool work nice.

here the code :

def test1():
    qgs = QgsApplication([],True)
    QgsApplication.setPrefixPath("C:/OSGeo4W/apps/qgis", True)
    qgs.initQgis()
    sys.path.append('C:/OSGeo4W/apps/qgis/python/plugins')
    import processing
    from processing.core.Processing import Processing
    Processing.initialize()
    print processing.alglist()
    qgs.exitQgis()
test1()
work fine i take the list correct

after i try to see if work algorithm where i want

here the code :

def slope():
    qgs = QgsApplication([],True)
    QgsApplication.setPrefixPath("C:/OSGeo4W/apps/qgis", True)
    qgs.initQgis()
    sys.path.append('C:/OSGeo4W/apps/qgis/python/plugins')
    import processing
    from processing.core.Processing import Processing
    Processing.initialize()
    print processing.alghelp('gdalogr:slope')
    qgs.exitQgis()

slope()
and i take this message :

C:\OSGeo4W\bin\python.exe C:/Users/username/PycharmProjects/untitled/test.py
ALGORITHM: Slope
    INPUT <ParameterRaster>
    BAND <ParameterNumber>
    COMPUTE_EDGES <ParameterBoolean>
    ZEVENBERGEN <ParameterBoolean>
    AS_PERCENT <ParameterBoolean>
    SCALE <ParameterNumber>
    OUTPUT <OutputRaster>


None

Process finished with exit code 0
but anytime to try to run some script with complete code like this :

from qgis.core import QgsApplication
import sys
from qgis.core import QgsRasterLayer
from PyQt4.QtCore import QFileInfo


def slope(raster_path,slope_path):
    qgs = QgsApplication([],True)
    QgsApplication.setPrefixPath("C:/OSGeo4W/apps/qgis", True)
    qgs.initQgis()
    sys.path.append('C:/OSGeo4W/apps/qgis/python/plugins')
    import processing
    from processing.core.Processing import Processing
    Processing.initialize()
    fileInfo=QFileInfo(raster_path)
    baseName=fileInfo.baseName()
    rLayer = QgsRasterLayer(fileInfo.filePath(), baseName)
   
processing.runalg('gdalogr:slope',rLayer,1.0,True,True,False,1.0,slope_path)
    qgs.exitQgis()

raster_path="C:/Users/username/Desktop/dem.tif"
slope_path="C:/Users/username/Desktop/slope.tif"
slope(raster_path,slope_path)
then before finish script the python.exe stop running :

<http://osgeo-org.1560.x6.nabble.com/file/n5327125/pytho.jpg> 

and i take this message in pycharm :

C:\OSGeo4W\bin\python.exe
C:/Users/username/PycharmProjects/untitled/test1.py

Process finished with exit code -1073741819 (0xC0000005)
that message i take for all scripts with different python code and specific
different algorithms if i want to run it standalone using pycharm editor.

any idea why python.exe stop work anytime ?



--
View this message in context: http://osgeo-org.1560.x6.nabble.com/why-stop-work-python-exe-in-pyqgis-standalone-script-anytime-tp5327125.html
Sent from the QGIS - Developer mailing list archive at Nabble.com.


More information about the QGIS-Developer mailing list