Проблемы с соединением py2neo 3.1.2

Я пытаюсь зафиксировать небольшой граф из трех узлов (a_py2neo_subgraph) на моем графеновом сервере Neo4j. Я использую py2neo 3.1.2.

g = py2neo.Graph(server)
tx = g.begin()
tx.create(a_py2neo_subgraph)
tx.commit()
tx.finished()

Где "сервер" - это точное значение, данное Графеном (то есть что-то вроде http://nick:password@hobby-hash.dbs.graphenedb.com:port/db/data/). Для отладки я запустил часы py2neo, и эта информация была предоставлена ​​watch для моего httpstream:

> GET server
< 200 OK [1287]

Тогда я получаю следующую трассировку:

Traceback (most recent call last):
  File "C:/Users/petr.svarny/PycharmProjects/untitled/test.py", line 116, in <module>
    tx = g.begin()
  File "C:\Users\petr.svarny\untitled\lib\site-packages\py2neo\database\__init__.py", line 370, in begin
    return self.transaction_class(self, autocommit)
  File "C:\Users\petr.svarny\untitled\lib\site-packages\py2neo\database\__init__.py", line 1249, in __init__
    self.session = driver.session()
  File "C:\Users\petr.svarny\untitled\lib\site-packages\py2neo\packages\neo4j\v1\session.py", line 126, in session
    connection = connect(self.address, self.ssl_context, **self.config)
  File "C:\Users\petr.svarny\untitled\lib\site-packages\py2neo\packages\neo4j\v1\bolt.py", line 419, in connect
    s = create_connection(host_port)
  File "C:\Python27\Lib\socket.py", line 571, in create_connection
    raise err
socket.error: [Errno 10060]

Я уже пытался установить время ожидания сокета на 9999, не помогло. Я попытался подключиться через telnet к серверу и сумел сделать это без проблем. Точно так же я могу получить доступ к адресу сервера, когда ввожу его в свой браузер. Мне также удалось запустить мой код для локальной базы данных Neo4j.

Спасибо за любые предложения.

2 ответа

Решение

Я Юдит из GrapheneDB. Можете ли вы проверить, какую версию py2neo вы используете? Описанная вами проблема выглядит как распространенная проблема при переходе с Py2neo v2 на v3. Поскольку py2neo v3 поддерживает протокол Bolt, вы должны указать порт для болта или просто сообщить драйверу, что вы его не используете.

Если вы не хотите использовать болтовое соединение, ваш код должен выглядеть следующим образом:

graph = Graph("http://USER:PASS@hobby-hash.dbs.graphenedb.com:port/db/data/", bolt = False)

Если это не ваш случай, было бы полезно узнать, какую версию Python/Py2neo/Neo4j вы используете.

Ура!

У меня была похожая проблема с py2neo 3.1.2, и я не мог заставить его работать даже с переключателем "bolt=False".

Я перешел на neorestclient 2.1.1, и теперь это работает.

Другие вопросы по тегам