6

I have read Accessing `processing` with Python?. The problem is even with a sys.path.append it couldn't import processing.

Here is the code I used:

#!/usr/bin/python
def main():
 layer = QgsVectorLayer('/path/to/file.shp', "BAT","ogr")
 QgsMapLayerRegistry.instance().addMapLayers([layer])
 # Testing processing
 try :
 Processing.runalg("qgis:creategrid")
 except:
 print "Processing module has not been loaded"
 #Check the QgsMapLayerRegistry for the layers
 print QgsMapLayerRegistry.instance().mapLayers()
 # Check if they are valid
 print layer.isValid()
if __name__=="__main__":
 import sys
 from PyQt4.QtGui import *
 from qgis.core import *
 app = QApplication([])
 QgsApplication.setPrefixPath("/usr", True)
 QgsApplication.initQgis()
 sys.path.append('home/qsuser/.qgis2/python/plugins')
 # try to load processing
 try:
 from processing.core.Processing import Processing
 Processing.initialize()
 except:
 print "unable to load processing"
 main()
 QgsApplication.exitQgis()

I could load QGIS and layer is valid that's ok, but processing resist to me. I am on Ubuntu 14.04 I use Pycharm to do it. I tried on terminal with the python console, it raised this error:

Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "/usr/lib/python2.7/dist-packages/qgis/utils.py", line 572, in _import
 mod = _builtin_import(name, globals, locals, fromlist, level)
 File "/home/qsuser/.qgis2/python/plugins/processing/__init__.py", line 28, in <module>
 from processing.tools.dataobjects import *
 File "/usr/lib/python2.7/dist-packages/qgis/utils.py", line 572, in _import
 mod = _builtin_import(name, globals, locals, fromlist, level)
 File "/home/qsuser/.qgis2/python/plugins/processing/tools/dataobjects.py", line 35, in <module>
 from processing.core.ProcessingConfig import ProcessingConfig
 File "/usr/lib/python2.7/dist-packages/qgis/utils.py", line 572, in _import
 mod = _builtin_import(name, globals, locals, fromlist, level)
 File "/home/qsuser/.qgis2/python/plugins/processing/core/ProcessingConfig.py", line 30, in <module>
 from PyQt4.QtCore import QPyNullVariant, QCoreApplication, QSettings
ImportError: cannot import name QPyNullVariant
 

I don't know what I am missing.

Settings :

Qgis 2.12.1-Lyon
Ubuntu 14.04 Trusty
IDE : Pycharm 5 community
Processing : 2.12.2

And with the changes suggest by mathias kuhn

#!/usr/bin/python
def main():
 layer = QgsVectorLayer('/path/to/file.shp', "BAT","ogr")
 QgsMapLayerRegistry.instance().addMapLayers([layer])
 # Testing processing
 try :
 Processing.runalg("qgis:creategrid")
 except:
 print "Processing module has not been loaded"
 #Check the QgsMapLayerRegistry for the layers
 print QgsMapLayerRegistry.instance().mapLayers()
 # Check if they are valid
 print layer.isValid()
if __name__=="__main__":
 import sys
 from qgis.core import * 
 from PyQt4.QtGui import *
 app = QApplication([])
 QgsApplication.setPrefixPath("/usr", True)
 QgsApplication.initQgis()
 sys.path.append('home/user/.qgis2/python/plugins')
 # try to load processing
 try:
 from processing.core.Processing import Processing
 Processing.initialize()
 except:
 print "unable to load processing"
 main()
 QgsApplication.exitQgis()
PolyGeo
65.5k29 gold badges115 silver badges350 bronze badges
asked Jan 14, 2016 at 10:00
0

1 Answer 1

4

This error

ImportError: cannot import name QPyNullVariant

It indicates that the SIP API version is not set to version 2. When you write standalone python scripts, make sure that the very first import is

import qgis

The SIP API Version always needs to be set before any other PyQt code is executed. The qgis import takes care of that.

answered Jan 14, 2016 at 17:21
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.