2015-12-08 38 views
0

我運行Jupyter筆記本泊塢窗實例(https://github.com/jupyter/docker-stacks/tree/master/all-spark-notebook)和我已經安裝py2neo它來泊塢窗實例。與蟒蛇筆記本連接泊塢窗實例與Neo4j的

我也運行與暴露的端口7474安裝Neo4j的碼頭工人容器。

的問題是,我似乎無法連接到從筆記本泊塢窗泊塢窗的Neo4j的REST接口。我認爲這個問題與localhost的定義有關。

什麼至今工作。我只用了Neo4j的碼頭工人和啓動本地筆記本電腦(筆記本電腦的IPython),那麼以下工作:

import py2neo 

from py2neo import Node, Relationship, Graph, authenticate 

authenticate("http://localhost:7474", "neo4j", "admin") 

graph = Graph('http://localhost:7474/db/data') 

graph.cypher.execute('match (y:Year) return y') 

相同的代碼並不在其中是在一個單獨容器碼頭工人自本地主機的定義運行筆記本工作不一樣。但現在我不明白它應該是什麼:

我用泊塢窗檢查的Neo4j的容器上,企圖用以下兩種找到對應於我的本地主機地址:

  • 「網關」: 「xxx.yy.42.1」
  • 「ip地址」: 「xxx.yy.0.3」

但他們都導致ClientError: 401 Unauthorized

有關如何解決此問題的任何建議? (請注意,我現在的碼頭工人的版本是1.7.1,因此不支持網絡還沒有,但如果有必要,我可以明顯升級。)

+0

http://stackoverflow.com/questions/28224779/socketerror-connection-refused-using-py2neo-to-a-remote-server似乎相關。其中一個答案表明認證功能可能存在問題。我們已經採取了使用Wireshark一看,從泊塢窗實例發送請求不包含認證信息從本地蟒蛇筆記本它正確有一段時間。 – DDW

+0

你可以嘗試禁用Neo4j的認證,以確認這是否是問題。在conf/neo4j-server.properties中設置'dbms.security.auth_enabled = false' –

回答

1
graph = Graph('https://' + username + ':' + pwd + '@' + ip_neo + ':7473 /db/data') 

這似乎是工作。請注意,您需要端口7473,它是標準的HTTPS端口。沒有成功獲得認證的方法工作。

對於ip_neo我檢查的Neo4j泊塢窗實例:

sudo docker inspect neo4j | grep "Gateway"