2015-05-01 2 views
10

Я написал следующий код питона в Neo4j используя py2neoОшибка подключения питона Neo4j с помощью py2neo

from py2neo import Graph 
from py2neo import neo4j,Node,Relationship 
sgraph = Graph() 
alice = Node("person",name="alice") 
bob = Node("person",name="bob") 
alice_knows_bob = Relationship(alice,"KNOWS",bob) 
sgraph.create(alice_knows_bob) 

, но я получил следующее сообщение об ошибке

Traceback (most recent call last): 
File "C:\Python34\lib\site-packages\py2neo\core.py", line 258, in get 
response = self.__base.get(headers=headers, redirect_limit=redirect_limit, * 
*kwargs) 
File "C:\Python34\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:\Python34\lib\site-packages\py2neo\packages\httpstream\http.py",line 
943, in __get_or_head 
return rq.submit(redirect_limit=redirect_limit, **kwargs) 
File "C:\Python34\lib\site-packages\py2neo\packages\httpstream\http.py",line 
452, in submit 
return Response.wrap(http, uri, self, rs, **response_kwargs) 
File "C:\Python34\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 occurr ed: 

Traceback (most recent call last): 
File "neo.py", line 7, in <module> 
sgraph.create(alice_knows_bob) 
File "C:\Python34\lib\site-packages\py2neo\core.py", line 704, in create 
statement = CreateStatement(self) 
File "C:\Python34\lib\site-packages\py2neo\cypher\create.py", 44,in__init__ 
self.supports_node_labels = self.graph.supports_node_labels 
File "C:\Python34\lib\site-packages\py2neo\core.py", line 1078, in supports_node_labels return self.neo4j_version >= (2, 0) 
File "C:\Python34\lib\site-packages\py2neo\core.py", line 956, in neo4j_version 
return version_tuple(self.resource.metadata["neo4j_version"]) 
File "C:\Python34\lib\site-packages\py2neo\core.py", line 213, in metadata 
self.get() 
File "C:\Python34\lib\site-packages\py2neo\core.py", line 261, in get 
raise Unauthorized(self.uri.string) 
py2neo.error.Unauthorized: http://localhost:7474/db/data/ 

может кто-нибудь, пожалуйста, помогите me.This является первым время я пишу код python для подключения к neo4j.

ответ

20

Если вы используете Neo4j 2.2, аутентификация для серверов баз данных включена по умолчанию. Перед выполнением дальнейших операций необходимо выполнить аутентификацию. Прочитано documentation.

from py2neo import authenticate, Graph 

# set up authentication parameters 
authenticate("localhost:7474", "user", "pass") 

# connect to authenticated graph database 
sgraph = Graph("http://localhost:7474/db/data/") 

# create alice and bob 
... 

Из той же documentation,

Py2neo предоставляет инструмент командной строки, чтобы помочь с изменением пользователя паролей, а также проверки, требуется ли смена пароля.

Для новой установки, использования:

$ neoauth neo4j neo4j my-p4ssword 
Password change succeeded 

После того как пароль был установлен, инструмент может также использоваться для проверки учетных

$ neoauth neo4j my-p4ssword 
Password change not required 
+0

Спасибо, ComputerFellow, ваше решение сработало –

+0

@ComputerFellow Я получаю сообщение об ошибке neoauth: команда не найдена .. Любая идея о это? – karzler007

+1

можно полностью отключить, изменив значение параметра dbms.security.authorization_enabled в файле conf/neo4j-server.properties. – Anish

Смежные вопросы