执行python manage.py install_labels时Django-neomodels驱动报错
问题根因
你的报错本质是Neo4j服务器版本和Python端neo4j-driver驱动版本的Bolt协议不兼容:你当前安装的neo4j-driver==4.3.1仅支持Bolt协议v3.0~v4.3,对应兼容的Neo4j服务端版本为3.5.x ~ 4.4.x;如果你本地部署的Neo4j是5.x及以上版本,默认使用更高版本的Bolt协议,就会触发握手失败报错。
解决步骤
步骤1:确认本地Neo4j服务端版本
进入Neo4j安装目录的bin文件夹,执行命令:
./neo4j --version
或者直接打开Neo4j Browser(默认地址http://127.0.0.1:7474),登录后页面右上角会显示服务端版本号。
步骤2:根据服务端版本选择对应解决方案
方案A:降级Neo4j服务端(推荐,适配你现有项目依赖)
如果你的Neo4j版本是5.x及以上,直接卸载重装4.4.x版本的Neo4j即可,完美适配你当前的neo4j-driver==4.3.1和neomodel==4.0.4依赖,不需要修改任何项目代码。
方案B:升级Python端依赖(适用于不想更换Neo4j 5.x版本的情况)
如果要适配Neo4j 5.x版本,需要更新对应的依赖包,修改requirements.txt中相关条目为如下版本:
neo4j-driver==5.13.0 neomodel==5.2.0 django-neomodel==0.1.0
修改完成后执行pip install -r requirements.txt重装依赖即可。
验证
修改完成后先确认Neo4j服务已经正常启动,再执行python manage.py install_labels命令即可正常生成索引。
内容的提问来源于stack exchange,提问作者Harman Kibue
相关产品推荐
相关产品推荐

