Search code examples
djangopython-2.7neo4jneo4django

Neo4Django - KeyError: 'GremlinPlugin' error while creating an object


I'm trying to learn to work with Neo4jdatabase in my django projects. I installed Neo4Django from github repository. and following its neo4j tutorial when I try to create a new object from my model I encounter with this error:

KeyError: 'GremlinPlugin'

I'm using Python 2.7, Django Version 1.5.8, Pycharm 3

My model is:

class Movie(models.NodeModel):
    # name of the movie
    title = models.StringProperty()

and my console code for creating the object is:

from nodes_app.models import Movie
movie = Movie.objects.create(title='a')

and this is the console output for the error:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Python27\lib\site-packages\neo4django-0.1.8-py2.7.egg\neo4django\db\models\manager.py", line 43, in create
    return self.get_query_set().create(**kwargs)
  File "C:\Python27\lib\site-packages\neo4django-0.1.8-py2.7.egg\neo4django\db\models\query.py", line 1307, in create
    return super(NodeQuerySet, self).create(**kwargs)
  File "C:\Python27\lib\site-packages\django-1.5.8-py2.7.egg\django\db\models\query.py", line 416, in create
    obj.save(force_insert=True, using=self.db)
  File "C:\Python27\lib\site-packages\neo4django-0.1.8-py2.7.egg\neo4django\db\models\base.py", line 325, in save
    return super(NodeModel, self).save(using=using, **kwargs)
  File "C:\Python27\lib\site-packages\django-1.5.8-py2.7.egg\django\db\models\base.py", line 546, in save
    force_update=force_update, update_fields=update_fields)
  File "C:\Python27\lib\site-packages\neo4django-0.1.8-py2.7.egg\neo4django\db\models\base.py", line 341, in save_base
    self._save_neo4j_node(using)
  File "<string>", line 2, in _save_neo4j_node
  File "C:\Python27\lib\site-packages\neo4django-0.1.8-py2.7.egg\neo4django\db\models\base.py", line 98, in trans_method
    ret = func(*args, **kw)
  File "C:\Python27\lib\site-packages\neo4django-0.1.8-py2.7.egg\neo4django\db\models\base.py", line 369, in _save_neo4j_node
    typesToIndex=type_names_to_index)
  File "C:\Python27\lib\site-packages\neo4django-0.1.8-py2.7.egg\neo4django\neo4jclient.py", line 179, in gremlin_tx
    return self.gremlin(script, tx=True, **params)
  File "C:\Python27\lib\site-packages\neo4django-0.1.8-py2.7.egg\neo4django\neo4jclient.py", line 127, in gremlin
    ext = self.extensions.GremlinPlugin
  File "C:\Python27\lib\site-packages\neo4jrestclient\client.py", line 2176, in __getattr__
    self._dict[attr] = ExtensionModule(self._extensions[attr], self._auth)
KeyError: 'GremlinPlugin'

Solution

  • It seems that the Neo4j Django driver depends on the Gremlin plugin on the Neo4j server. Starting with Neo4j 2.0, Gremlin has been removed from the distribution but is still available as a contribution package, see the instructions there.