Trying to convert a python console script to a standalone version of it. By following the general guidelines from QGIS-documentary https://docs.qgis.org/2.14/en/docs/pyqgis_developer_cookbook/intro.html

But unfortunately, I run in a "simple" problem, but unable to solve it... This is my code:

import sys

from qgis.core import *    

import json, requests
import processing       

# supply path to qgis install location
QgsApplication.setPrefixPath(r"/Applications/QGIS.app/Contents/MacOS", False)
# create a reference to the QgsApplication, setting the # second argument to False disables the GUI
qgs = QgsApplication([], False)
# load providers

geometry_decode = [(0.0,0.0),(1.2,1.3)]    

geometry = [QgsPoint(point[1],point[0]) for point in geometry_decode]    

line = QgsGeometry.fromPolyline(geometry)
route = QgsVectorLayer("LineString?crs=epsg:4326&index=yes","route","memory")
pr = route.dataProvider()

feature = QgsFeature()


# Write your code here to load some layers, use processing algorithms, etc.
# When your script is complete, call exitQgis() to remove the provider and # layer registries from memory

This is the error-message:

Error in sys.excepthook:
Traceback (most recent call last):
  File "/Applications/QGIS.app/Contents/Resources/python/qgis/utils.py", line 196, in qgis_excepthook
    showException(type, value, tb, None, messagebar=True)
  File "/Applications/QGIS.app/Contents/Resources/python/qgis/utils.py", line 107, in showException
    open_stack_dialog(type, value, tb, msg)
  File "/Applications/QGIS.app/Contents/Resources/python/qgis/utils.py", line 142, in open_stack_dialog
AttributeError: 'NoneType' object has no attribute 'messageBar'    

Original exception was:
Traceback (most recent call last):
  File "test_standalone_copy.py", line 33, in <module>
AttributeError: 'NoneType' object has no attribute 'addFeatures'
  • Please include the whole error message
    – underdark
    Commented Jan 28, 2018 at 12:35
  • Try using route.addFeatures([feature])
    – Ben W
    Commented Jan 28, 2018 at 12:40
  • added error message Commented Jan 28, 2018 at 12:42
  • route.addFeatures([feature]) fixed problem, but why does it work in the qgis console? Commented Jan 28, 2018 at 12:52
  • I'm not sure exactly what code you ran in the console, but the addFeatures() method belongs to the QgsVectorLayer class, which you instantiated and assigned to the variable route.
    – Ben W
    Commented Jan 28, 2018 at 13:46

1 Answer 1


thank to Ben-W's help, The function .addFeatures() is related to the VectorLayer and not dataProvider

So this is the right way to add the feature


Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.