1.安装宝塔
重装服务器,系统选择宝塔。
2.安装docker
需要先在宝塔的"面板设置"中的 面板菜单栏隐藏 将 "Docker" 打开,按F5刷新界面,在左侧菜单 "Docker" 界面安装。
3.拉取镜像
目前使用的py2neo 2021.1最高只支持到neo4j 4.3,故拉取该版本。
4.创建容器并运行
服务器上的目录/home/neo4j/diseaseGraph/data对应容器目录/var/lib/neo4j/data,以此类推。
NEO4J_AUTH=neo4j/password 设定数据库的名字的访问密码。
限制的CPU和内存根据自己服务器情况而定,越大越快~
如果遇到报错,根据提示修改neo4j.conf可以解决部分问题,例如
则将其中的
改小
5.开放端口供外网访问。
云服务器的防火墙端口也需要放行
6.访问neo4j网页
输入NEO4J_AUTH设定的账号进入
7.Python访问neo4j并构建图谱
采用py2neo连接数据库
g = Graph(
'http://服务器ip:7474/',
auth=(
"neo4j",
"password"
)) # auth=("用户名","密码"),改为自己的
ps:远程新建节点和关系速度很慢,故把构建图谱脚本放在服务器上连接本地neo4j数据库更快,详见# Python脚本部署到宝塔Linux运行juejin.cn/post/724916…
8.部署问答flask接口
使用Python项目管理器
urllib3和openssl版本不匹配错误
g = Graph(
File "/home/pythonProjects/disease/diseaseAsk/2b99fef724a6ccb05fadb32b117a6043_venv/lib/python3.9/site-packages/py2neo/database.py", line 288, in __init__
self.service = GraphService(profile, **settings)
File "/home/pythonProjects/disease/diseaseAsk/2b99fef724a6ccb05fadb32b117a6043_venv/lib/python3.9/site-packages/py2neo/database.py", line 119, in __init__
self._connector = Connector(profile, **connector_settings)
File "/home/pythonProjects/disease/diseaseAsk/2b99fef724a6ccb05fadb32b117a6043_venv/lib/python3.9/site-packages/py2neo/client/__init__.py", line 960, in __init__
self._add_pools(*self._initial_routers)
File "/home/pythonProjects/disease/diseaseAsk/2b99fef724a6ccb05fadb32b117a6043_venv/lib/python3.9/site-packages/py2neo/client/__init__.py", line 982, in _add_pools
pool = ConnectionPool.open(
File "/home/pythonProjects/disease/diseaseAsk/2b99fef724a6ccb05fadb32b117a6043_venv/lib/python3.9/site-packages/py2neo/client/__init__.py", line 649, in open
seeds = [pool.acquire() for _ in range(init_size or cls.default_init_size)]
File "/home/pythonProjects/disease/diseaseAsk/2b99fef724a6ccb05fadb32b117a6043_venv/lib/python3.9/site-packages/py2neo/client/__init__.py", line 649, in <listcomp>
seeds = [pool.acquire() for _ in range(init_size or cls.default_init_size)]
File "/home/pythonProjects/disease/diseaseAsk/2b99fef724a6ccb05fadb32b117a6043_venv/lib/python3.9/site-packages/py2neo/client/__init__.py", line 813, in acquire
cx = self._connect()
File "/home/pythonProjects/disease/diseaseAsk/2b99fef724a6ccb05fadb32b117a6043_venv/lib/python3.9/site-packages/py2neo/client/__init__.py", line 764, in _connect
cx = Connection.open(self.profile, user_agent=self.user_agent,
File "/home/pythonProjects/disease/diseaseAsk/2b99fef724a6ccb05fadb32b117a6043_venv/lib/python3.9/site-packages/py2neo/client/__init__.py", line 177, in open
from py2neo.client.http import HTTP
File "/home/pythonProjects/disease/diseaseAsk/2b99fef724a6ccb05fadb32b117a6043_venv/lib/python3.9/site-packages/py2neo/client/http.py", line 27, in <module>
from urllib3 import HTTPConnectionPool, HTTPSConnectionPool, make_headers
File "/home/pythonProjects/disease/diseaseAsk/2b99fef724a6ccb05fadb32b117a6043_venv/lib/python3.9/site-packages/urllib3/__init__.py", line 41, in <module>
raise ImportError(
ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL 1.0.2k-fips 26 Jan 2017'. See: https://github.com/urllib3/urllib3/issues/2168
解决方法:
先卸载现在2.0.3的urllib3
再安装1.26.6的urllib3
或者requirements.txt里指定urllib3==1.26.6