在我们的应用程序中,我们通过py2neo模块版本3.1.2连接到Neo4j数据库。现在我们想把它更新到4.0.0版本。我们已经浏览了下面的链接,并了解了查询级别所需的更改。
但是,在py2neo 4.0.0版本中有一些模块不可用。请帮助我们了解是否有相应的模块可用。
from py2neo.database.status import ConstraintError
from py2neo.packages.neo4j.v1.exceptions import ProtocolError
from py2neo.packages.httpstream import http下面是参考的错误详细信息。
ModuleNotFoundError: No module named 'py2neo.database.status'; 'py2neo.database' is not a packageTraceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'py2neo.packages'发布于 2021-04-16 21:35:34
py2neo的新版本4不需要http,而是使用bolt。我用py2neo中的一个工作版本替换了你所有缺失的模块。请看我下面的例子;
#from py2neo.database.status import ConstraintError
from py2neo import ClientError, GraphError
#from py2neo.packages.neo4j.v1.exceptions import ProtocolError
from py2neo import DatabaseError, TransientError, TransactionError
#from py2neo.packages.httpstream import http <-- http is replaced by bolt connection
from py2neo import Graph
print("py2neo version: ", py2neo.__version__)
graph = Graph("bolt://localhost:7687", auth=("neo4j", "****"))
query = """<Invalid> RETURN $x as number, $x*$x as squared; """
try:
cursor = graph.run(query, x=12)
for record in cursor:
print('The square of', record["number"], 'is', record["squared"])
except (ClientError, GraphError) as ex:
print('Client Graph error: \n', ex)
except (DatabaseError, TransientError, TransactionError) as ex:
print('DatabaseError error: \n', ex)
#references: https://py2neo.org/v4/index.html
#https://dzone.com/articles/introducing-bolt-neo4js-upcoming-binary-protocol-p
RESULT:
py2neo version: 4.2.0
The square of 12 is 144https://stackoverflow.com/questions/67102433
复制相似问题