Проблемы с использованием пакетов Python (Neomodel & py2neo) с Neo4j

Это неприятно. Так я обычно делаю это, чтобы не загружать другие пакеты:

levels(subdf$letters)<-c("a","b","c",NA,NA)

, который получает вас:

> subdf$letters
[1] a b c
Levels: a b c

Обратите внимание, что новые уровни заменят все, что занимает их индекс в старые значения (subdf $ letters), поэтому что-то вроде:

levels(subdf$letters)<-c(NA,"a","c",NA,"b")

не будет работать.

Это, очевидно, не идеально, когда у вас много уровней, но для Несколько, это быстро и легко.

0
задан S.Jamal 3 March 2019 в 10:51
поделиться

1 ответ

Так что мне удалось решить мою проблему с Py2neo, но не проблему с Neomodel. Если я найду способ заставить Neomodel работать, я опубликую его и либо сделаю ссылку на этот пост, либо оставлю комментарий в этой теме.

Решение Py2neo с py2neo v4.0 и neo4j v3.o

Я пробовал различные комбинации, начиная с neo4j 2.3, вместе с различными версиями py2neo, такими как 3.1.2, а затем сделал то же самое с neo4j v3.0.

Я публикую свой сценарий, который использовал для создания узла и соединения с графом, так как я сходил с ума, пытаясь выяснить, плохо ли я настроил конфигурацию или была ли ошибка в пакете, драйвере и т. Д. [1112 ]

Скрипт Py2neo

from py2neo import Node, Relationship, Graph                                       

graph = Graph('http://localhost:7474/db/data',user='neo4j',pass word='password1234')
tx = graph.begin()                                                                 
a = Node(label='hero',name='Sabri')                                                
tx.create(a)                                                                       
tx.commit()  

Устаревший драйвер py2neo v3.1.2 в тандеме с Neo4j v3.4

Как обсуждалось в этом Отчет о проблеме Github https://github.com/neo4j/neo4j-python-driver/issues/252 пользователь, который сообщил о проблеме, использовал py2neo 3.1.2 вместе с Neo4jv3.4. Подозрение было связано с устаревшим драйвером (v1.1), который поставлялся с py2neo 3.1.2. Новый дистрибутив Neo4j v3.4, похоже, поставляется с новым драйвером 1.6.

Обновление py2neo до v4.0 и использование последней версии сервера Neo4j, т.е. v3.4

При этом я столкнулся с другой ошибкой

File "/Users/sjamal/.conda/envs/py2neo.v4/lib/python3.6/site-packages/py2neo/internal/http.py", line 26, in <module>
from neo4j.addressing import SocketAddress
ModuleNotFoundError: No module named 'neo4j.addressing'
[1118 В этом потоке stackoverflow обсуждалось ( ModuleNotFoundError: нет модуля с именем 'neo4j.addressing' и ModuleNotFoundError: нет модуля с именем 'neo4j' ), что проблема может заключаться в том, что драйвер драйвера 1.6 может потребоваться вручную установил через пипс, что я и сделал.

pip install neo4j-driver==1.6.2

Теперь я получил новую ошибку, когда TypeError был перехвачен при вызове объекта карты.

File "/Users/sjamal/.conda/envs/py2neo.v4/lib/python3.6/site-packages/py2neo/internal/http.py", line 74, in fix_parameters
raise TypeError("Parameters of type {} are not supported".format(type(value).__name__))

TypeError: параметры карты типов не поддерживаются

Я обнаружил эту проблему с github, опубликованную speters-cmri https://github.com/technige/py2neo/issues/688 [ 117], который содержал следующий коммит github ( https://github.com/technige/py2neo/compare/v4...CMRI-ProCan:v4 ) для решения проблемы путем изменения скрипта json.py в пакете py2neo

я снова запустил свой скрипт, чтобы добавить тестовый узел, и он запустился без проблем.

Если вы слишком ленивы или просто слишком расстроены, чтобы пройти длинное объяснение, вот краткое изложение

1. Make sure neo4j v3.0+ is installed. I suggest you look into docker to install neo4j using a docker image

2. pip install py2neo==v4.0
3. pip install neo4j-driver==1.6.2

4. Modify json.py file as described here https://github.com/technige/py2neo/compare/v4...CMRI-ProCan:v4

5. Run py2neo script outlined above
0
ответ дан S.Jamal 3 March 2019 в 10:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: