问题描述
我正在尝试运行文档中提到的示例 - https://neo4j.com/developer/python/#_resources
class HelloWorldExample:
def __init__(self,uri,user,password):
self.driver = GraphDatabase.driver(uri,auth=(user,password))
def close(self):
self.driver.close()
def print_greeting(self,message):
with self.driver.session() as session:
greeting = session.write_transaction(self._create_and_return_greeting,message)
print(greeting)
@staticmethod
def _create_and_return_greeting(tx,message):
result = tx.run("CREATE (a:Greeting) "
"SET a.message = $message "
"RETURN a.message + ',from node ' + id(a)",message=message)
return result.single()[0]
if __name__ == "__main__":
greeter = HelloWorldExample("bolt://localhost:7687","neo4j","password")
greeter.print_greeting("hello,world")
greeter.close()
错误是 -
Traceback (most recent call last):
File "createneodb.py",line 26,in <module>
greeter.print_greeting("hello,world")
File "createneodb.py",line 13,in print_greeting
greeting = session.write_transaction(self._create_and_return_greeting,message)
File "C:\Users\omras\AppData\Local\Programs\Python\python37\lib\site-packages\neo4j\work\simple.py",line 435,in write_transaction
return self._run_transaction(WRITE_ACCESS,transaction_function,*args,**kwargs)
File "C:\Users\omras\AppData\Local\Programs\Python\python37\lib\site-packages\neo4j\work\simple.py",line 336,in _run_transaction
self._open_transaction(access_mode=access_mode,database=self._config.database,Metadata=Metadata,timeout=timeout)
File "C:\Users\omras\AppData\Local\Programs\Python\python37\lib\site-packages\neo4j\work\simple.py",line 271,in _open_transaction
self._connect(access_mode=access_mode,database=database)
File "C:\Users\omras\AppData\Local\Programs\Python\python37\lib\site-packages\neo4j\work\simple.py",line 122,in _connect
bookmarks=self._bookmarks
File "C:\Users\omras\AppData\Local\Programs\Python\python37\lib\site-packages\neo4j\io\__init__.py",line 805,in acquire
return self._acquire(self.address,timeout)
File "C:\Users\omras\AppData\Local\Programs\Python\python37\lib\site-packages\neo4j\io\__init__.py",line 660,in _acquire
connection = self.opener(address,line 789,in opener
**pool_config
File "C:\Users\omras\AppData\Local\Programs\Python\python37\lib\site-packages\neo4j\io\__init__.py",line 340,in open
connection.hello()
File "C:\Users\omras\AppData\Local\Programs\Python\python37\lib\site-packages\neo4j\io\_bolt4.py",line 98,in hello
self.fetch_all()
File "C:\Users\omras\AppData\Local\Programs\Python\python37\lib\site-packages\neo4j\io\__init__.py",line 517,in fetch_all
detail_delta,summary_delta = self.fetch_message()
File "C:\Users\omras\AppData\Local\Programs\Python\python37\lib\site-packages\neo4j\io\_bolt4.py",in fetch_message
response.on_failure(summary_Metadata or {})
File "C:\Users\omras\AppData\Local\Programs\Python\python37\lib\site-packages\neo4j\io\_common.py",line 202,in on_failure
raise AuthError(message)
neo4j.exceptions.AuthError: {code: None} {message: None}
详情:
驱动程序对象以及会话对象已成功初始化。然而,问题在于调用 write_transaction 时。我无法理解问题的根源。
解决方法
我最近遇到了这个错误,最终的原因是我的用户名/密码有问题。我在我引用的配置文件中弄错了它们。这令人困惑,因为错误直到我调用 .run()
方法的行才出现,即使我在代码中较早地建立了会话。