#python #neo4j #jupyter #graph-databases
Вопрос:
Я довольно новичок в Jupyter и Python, но я столкнулся с проблемой, которую ни я, ни мой профессор не смогли решить. Я установил Anaconda на свой Mac несколько лет назад, и он стал слишком глючным для запуска, поэтому мне пришлось установить python непосредственно на свой компьютер для использования в классе. Я полагаю, что это каким-то образом создало два экземпляра Python / Jupyter.
Я вручную установил базу данных графов Neo4j на свой компьютер, а затем запустил следующий код в Jupyter:
!pip3 install neo4j
!pip3 install py2neo
from neo4j import GraphDatabase
database_name = "test_database"
username = "test_user"
password = "test_pass"
uri = "bolt://localhost:7687/" database_name
driver = GraphDatabase.driver(uri, auth=(username, password))
session = driver.session()
print("Successfully connected to Neo4j!")
Затем я получил neo4j import GraphDatabase
сообщение об ошибке из-за того, что не нашел модуль Neo4j, хотя я установил настольную версию и создал базу данных / пароль и все, что с ним связано.
Я также попробовал pip freeze
и увидел, что neo4j отсутствует в списке…
Затем я попытался удалить anaconda всеми возможными способами, включая два способа, описанные в Nektony и MacUpdate, надеясь, что это исправит мои проблемы, но безуспешно, когда я перезапустил ядро и попробовал снова.
Затем я вошел pip install neo4j-driver==1.6.2
в терминал, чтобы посмотреть, исправит ли это ситуацию, но вместо этого он просто изменил ошибку на ImportError: cannot import name 'GraphDatabase' from 'neo4j' (/opt/anaconda3/lib/python3.8/site-packages/neo4j/__init__.py)
. Я заметил, что в этом сообщении об ошибке он все еще ссылается на anaconda.
(1) — Есть ли какой-нибудь способ изменить каталог, в котором он пытается найти модуль?
(2) — Если да, то как я могу найти, на что его изменить?
Любая помощь будет очень признательна. Спасибо.
Комментарии:
1. Какова версия вашего python и neo4j? Кстати, модуль neo4j в python отличается от py2neo, и оба могут подключаться к базе данных neo4j, поэтому не путайте их.