Schnittstelle Python zu Neo4j

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
BaseFloor
User
Beiträge: 25
Registriert: Donnerstag 16. November 2017, 11:06

Hallo,

ich habe die community version von Neo4j und verwende Python.
Ich habe beides installiert und auch viele module, unter anderem p2neo bereits installiert. Ich möchte die Pythonverknüpfung zu Neo4j verwenden
sowie wie es bei dem Tutorial hier :http://py2neo.org/2.0/intro.html.

Ferner habe ich auch in der Config-Datei die Einstelung #dmbs.directories.import=import verändert.

Dennoch kann ich noch nichts machen. Wenn ich zB diesen Code schreibe kommt eine Fehlermeldung:

from py2neo import Graph
graph = Graph()


Fehlermeldung:

Traceback (most recent call last):
File "C:\Users\nounh\AppData\Local\Programs\Python\Python36-32\lib\site-packages\py2neo\database\__init__.py", line 318, in __new__
inst = cls.__instances[key]
KeyError: (<class 'py2neo.database.Graph'>, <ServerAddress settings={}>, 'data')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\nounh\AppData\Local\Programs\Python\Python36-32\lib\site-packages\py2neo\database\http.py", line 154, in get
response = self.__base.get(headers=headers, redirect_limit=redirect_limit, **kwargs)
File "C:\Users\nounh\AppData\Local\Programs\Python\Python36-32\lib\site-packages\py2neo\packages\httpstream\http.py", line 966, in get
return self.__get_or_head("GET", if_modified_since, headers, redirect_limit, **kwargs)
File "C:\Users\nounh\AppData\Local\Programs\Python\Python36-32\lib\site-packages\py2neo\packages\httpstream\http.py", line 943, in __get_or_head
return rq.submit(redirect_limit=redirect_limit, **kwargs)
File "C:\Users\nounh\AppData\Local\Programs\Python\Python36-32\lib\site-packages\py2neo\packages\httpstream\http.py", line 452, in submit
return Response.wrap(http, uri, self, rs, **response_kwargs)
File "C:\Users\nounh\AppData\Local\Programs\Python\Python36-32\lib\site-packages\py2neo\packages\httpstream\http.py", line 489, in wrap
raise inst
py2neo.packages.httpstream.http.ClientError: 401 Unauthorized

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "Desktop\Python_2_Neo\p2n_1.py", line 2, in <module>
graph = Graph()
File "C:\Users\nounh\AppData\Local\Programs\Python\Python36-32\lib\site-packages\py2neo\database\__init__.py", line 327, in __new__
use_bolt = version_tuple(inst.__remote__.get().content["neo4j_version"]) >= (3,)
File "C:\Users\nounh\AppData\Local\Programs\Python\Python36-32\lib\site-packages\py2neo\database\http.py", line 157, in get
raise Unauthorized(self.uri.string)
py2neo.database.status.Unauthorized: http://localhost:7474/db/data/

Meine Frage:

Wie kann ich exakt die Schnittstelle zu Neo4j herstellen? Was mache ich falsch ?
Benutzeravatar
noisefloor
User
Beiträge: 3854
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

die Fehlermeldung legt die Vermutung nah, dass deine Datenbank eine Authorisierung erwartet, du aber keine sendest.

Gruß, noisefloor
__deets__
User
Beiträge: 14525
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich kenne mich null mit neo4j aus, aber die Fehlermeldung besagt doch recht eindeutig, das du nicht berechtigt bist die Datenbank anzusprechen. Daran musst du also schrauben, zB durch Angabe von user und passwort, oder runterschrauben der Nutzerrechte, etc.
BaseFloor
User
Beiträge: 25
Registriert: Donnerstag 16. November 2017, 11:06

Ich habe bereits alles nötige in der config Datei geändert.
Beispielsweise: das Erlauben von import

Es ist ein Problem was ich noch nirgends gesehen habe.
Kennt sich jemand damit aus ?
__deets__
User
Beiträge: 14525
Registriert: Mittwoch 14. Oktober 2015, 14:29

Kannst du dich denn mit dem Browser mit der DB verbinden?
Benutzeravatar
noisefloor
User
Beiträge: 3854
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

_wie_ hast du den Neo4j Konfiguriert? Es geht ja nicht in die Rechte _in_ der DB, sondern dass du dich überhaupt damit verbinden kannst, um überhaupt was zu machen.

In der Doku des Python-Moduls steht doch auch direkt zu Beginn, wie man Nutzername und Password mit überträgt, wenn man eine Instanz zur Kommunikation mit der DB anlegt.

Gruß, noisefloor
Antworten