проблемы с подключением 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()

Где «сервер» — это точное значение, заданное Graphene (например, что-то вроде http://nick:[email protected]:port/db/data/). Для отладки я запустил py2neo watch, и это была информация, предоставленная 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.

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


person SvarnyP    schedule 20.12.2016    source источник


Ответы (2)


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

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

graph = Graph("http://USER:[email protected]:port/db/data/", bolt = False)

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

Ваше здоровье!

person Judit Sarmiento    schedule 21.12.2016
comment
Спасибо большое, я этого не заметил. - person SvarnyP; 21.12.2016

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

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

person Eddy Wong    schedule 28.01.2017