如何解决将 py2neo 3.1.2 更新到 py2neo 4.0.0 时出现 ModuleNotFoundError
在我们的应用程序中,我们通过 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 package
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
ModuleNotFoundError: No module named 'py2neo.packages'
解决方法
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,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 144
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。