py2neo - невозможно запросить сервер болтов, ошибка http? - PullRequest
0 голосов
/ 14 октября 2018

Я пытаюсь использовать py2neo для запроса базы данных Neo4J.Я могу создать объект графа для подключения к базе данных, но когда я пытаюсь выполнить запрос, я получаю сообщение об ошибке:

py2neo.packages.neo4j.v1.exceptions.ProtocolError: Сервер ответил HTTP.Убедитесь, что вы не пытаетесь подключиться к конечной точке http (по умолчанию HTTP используется порт 7474, а по умолчанию BOLT - порт 7687)

Я не уверен, есть ли проблема с настройкой сервера или еслиЯ просто пропускаю какой-то параметр, который мне нужно установить, чтобы все работало.

Вот код, который я использую:

from py2neo import Graph

graph = Graph("bolt://bolt.bump.dev.stratified:80", auth=("neo4j", "bump"), bolt=True)
data = graph.run("MATCH p=()-[r:ACTED_IN]->() RETURN p LIMIT 25").data()

FWIW, я также пытался

graph = Graph("bolt://bolt.bump.dev.stratified:7687", auth=("neo4j", "bump"), bolt=True)
data = graph.run("MATCH p=()-[r:ACTED_IN]->() RETURN p LIMIT 25").data()

А вот полное сообщение об ошибке (полученное для любого порта):

Traceback (последний вызов был последним): Файл "/ Users / amf111 / anaconda3 / envs / baily / lib /python3.6 / site-packages / py2neo / packages / neo4j / v1 / session.py ", строка 124, в сеансе session = self.session_pool.pop () IndexError: всплывающее окно из пустой очереди Во время обработки вышеупомянутого исключения другоевозникла исключительная ситуация: трассировка (последний вызов был последним): файл "/Users/amf111/anaconda3/envs/baily/lib/python3.6/site-packages/IPython/core/interactiveshell.py", строка 2961, в run_code exec (code_obj, self.user_global_ns, self.user_ns) Файл "", строка 1, в data = graph.run ("MATCH p = () - [r: ACTED_IN] -> () RETURN p LIMIT 25"). Файл данных () "/Users/amf111/anaconda3/envs/baily/lib/python3.6/site-packages / py2neo / database / init .py ", строка 731, в прогоне return self.begin (autocommit = True) .run (оператор, параметры, ** параметры kw) Файл" / Users / amf111 /anaconda3 / envs / baily / lib / python3.6 / site-packages / py2neo / database / init .py ", строка 370, в начале возвращает файл self.transaction_class (self, autocommit)" "Users /amf111 / anaconda3 / envs / baily / lib / python3.6 / site-packages / py2neo / database / init .py ", строка 1249, в init self.session = driver.Файл session () "/Users/amf111/anaconda3/envs/baily/lib/python3.6/site-packages/py2neo/packages/neo4j/v1/session.py", строка 126, в соединении сеанса = connect (self.address, self.ssl_context, ** self.config) Файл "/Users/amf111/anaconda3/envs/baily/lib/python3.6/site-packages/py2neo/packages/neo4j/v1/bolt.py", строка 486, в соединении "(по умолчанию HTTP используется порт 7474, а по умолчанию BOLT - порт 7687)") py2neo.packages.neo4j.v1.exceptions.ProtocolError: Сервер ответил HTTP.Убедитесь, что вы не пытаетесь подключиться к конечной точке http (по умолчанию HTTP используется порт 7474, а по умолчанию BOLT - 7687)

1 Ответ

0 голосов
/ 14 октября 2018

Ошибка ясна в сообщении, порт болта по умолчанию - 7687, если вы не измените файл neo4j.conf.

Попробуйте изменить порт 80 на 7687 и попробуйте

graph = Graph("bolt://bolt.bump.dev.stratified:7687", auth=("neo4j", "bump"), bolt=True)
...