Search code examples
pythonpython-2.7neo4jpy2neo

Error connecting py2neo


I'm trying to connect my neo4J DB with Python using py2neo.

I'm following the example extracted from py2neo 2 API but there's no way to get it work.

My code:

from py2neo import Graph
graph = Graph("http://neo4j:1234@localhost:7474/C:/Users/htilmatine/Documents/Neo4j/default.graphdb")

The error:

Traceback (most recent call last):
  File "D:\TFG\python\ejm.py", line 1, in <module>
    from py2neo import Graph
  File "C:\Python27\lib\site-packages\py2neo-2.0a0-py2.7.egg\py2neo\__init__.py", line 27, in <module>
    from py2neo.batch import *
  File "C:\Python27\lib\site-packages\py2neo-2.0a0-py2.7.egg\py2neo\batch\__init__.py", line 19, in <module>
    from py2neo.batch.core import *
  File "C:\Python27\lib\site-packages\py2neo-2.0a0-py2.7.egg\py2neo\batch\core.py", line 24, in <module>
    from py2neo.core import NodePointer, Service
  File "C:\Python27\lib\site-packages\py2neo-2.0a0-py2.7.egg\py2neo\core.py", line 50, in <module>
    from py2neo.error.client import BindError, JoinError
ImportError: No module named error.client

Solution

  • The connection docs are here.

    If you're just using a default install and default graph data directory, you should be able to connect with:

    graph = Graph("http://neo4j:1234@localhost:7474/db/data")
    

    or

    from py2neo import ServiceRoot
    graph = ServiceRoot("http://neo4j:1234@localhost:7474").graph
    

    If you're not using the default data directory then

    • it needs to be a subdirectory of /neo4j/data
    • you need to provide a relative path to it from the neo4j directory in your uri like:

      graph = Graph("http://neo4j:1234@localhost:7474/db/data/my_graph_dir")

    EDIT: fixed the first Graph url, and added how to connect with ServiceRoot