簡體   English   中英

在Docker中連接neo4j時出現py2neo AddressError

[英]py2neo AddressError When Connecting to neo4j in Docker

我在使用Python 2.7.0和py2neo 4.10在Neo4j 3.4.6上創建Graph對象時遇到困難。

我創建了一個運行Neo4j的Docker容器,並使用Dockerfile條目ENV NEO4J_AUTH=none禁用了身份驗證。 我確認可以使用http:// localhost:7474從主機瀏覽到Neo4j數據庫,並且不需要輸入密碼。

我為我的Web服務器創建了第二個Docker容器。 我使用Docker exec -it 033f92b042c1 /bin/bash訪問了Bash shell。 我確認可以對包含Neo4j安裝的Docker映像執行ping操作。

從第二個Docker映像中,我嘗試創建一個Database對象或Graph對象。

import neo4j
import py2neo
from py2neo import Graph
graph = Graph("bolt://172.17.0.3:7687")

我嘗試了不同的協議和localhost而不是IP。 在每種情況下,Python都會拋出以下內容:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/py2neo/database.py", line 88, in __new__
    inst = cls._instances[key]
KeyError: '5280a6d494b601f0256493eab3a08e55'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.7/site-packages/py2neo/database.py", line 305, in __new__
    database = Database(uri, **settings)
  File "/usr/local/lib/python3.7/site-packages/py2neo/database.py", line 92, in __new__
    from py2neo.internal.http import HTTPDriver, HTTPSDriver
  File "/usr/local/lib/python3.7/site-packages/py2neo/internal/http.py", line 26, in <module>
    from neo4j.addressing import SocketAddress
  File "/usr/local/lib/python3.7/site-packages/neo4j/addressing.py", line 26, in <module>
    from neo4j.exceptions import AddressError
ImportError: cannot import name 'AddressError' from 'neo4j.exceptions' (/usr/local/lib/python3.7/site-packages/neo4j/exceptions.py)

我是否缺少依賴關系,或者還有另一種方式應該連接Docker映像?

Py2neo不需要neo4j。 原因可能是neo4j正在產生問題。 就我而言,請確保干凈安裝,我刪除了所有與neo4j相關的模塊,然后安裝py2neo及其要求的neo4j-driver。

pip uninstall neo4j neobolt neo4restclient neo4j-driver py2neo

然后安裝:
pip install neo4j-driver py2neo

我希望這會起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM