Tag: py2neo

py2neo连接拒绝,而docker组成

我想运行一个Django的应用程序,它使用py2neo库连接到neo4j数据库。 它在我的本地机器上正常运行。 但是当我试图使用docker-compose得到它时,我一次又一次地出现了错误。 这是我的docker-compose.yml文件 version: '2' services: db: image: postgres neo4j: image: neo4j ports: – "7474:7474" – "7687:7687" volumes: – ./db/dbms:/data/dbms web: build: . command: python manage.py runserver 0.0.0.0:8000 volumes: – .:/code ports: – "8000:8000" depends_on: – db – neo4j links: – neo4j Dockerfile: FROM python:3 FROM neo4j:3.1 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR […]

Neo4J与Py2neo:未经授权的错误HTTPS

我有Neo4J运行在一个Docker容器中,其中我已经将内部容器端口7473和7687映射到它们各自的主机端口7473和7687,7474是暴露的但未映射。 关于networking的Neo4J服务器configuration。 # Bolt connector dbms.connector.bolt.enabled=true #dbms.connector.bolt.tls_level=OPTIONAL dbms.connector.bolt.listen_address=0.0.0.0:7687 # HTTP Connector. There must be exactly one HTTP connector. dbms.connector.http.enabled=true dbms.connector.http.listen_address=0.0.0.0:7474 # HTTPS Connector. There can be zero or one HTTPS connectors. dbms.connector.https.enabled=true dbms.connector.https.listen_address=0.0.0.0:7473 我能够通过浏览器login到Neo4J的web客户端,并更改默认密码。 关于Python代码,我在这里创build客户端。 self.client = py2neo.Graph(host =ip_address, username=username, password=password, secure =use_secure, bolt =use_bolt) 只要我执行这样的查询。 node = Node("FooBar", foo="bar") self.client.create(node) 我得到以下未经授权的例外。 py2neo.database.status.Unauthorized: https://localhost:7473/db/data/ 任何想法为什么这可能会发生?

在Cypher查询中Flask API中断

我在Flask中构build一个与neo4j db交谈的API。 一个特别大的查询(15分钟+)打破了API。 破坏意味着它运行的Docker容器在不logging请求的情况下停止。 麻烦的是,我不能在本地运行API时重现错误。 我想我需要的是一种使用py2neo运行查询的方法,然后返回一个任意的响应而不用等待查询结束。 def post(self): g.cypher.run("MATCH a-[r]-b SET r.cost = " "CASE WHEN r.cost <1 THEN 0.01*exp(4.60517*(r.costx+0.01)) ELSE r.cost END " "SET r.costx = " "CASE WHEN r.costx < 1 THEN r.costx + 0.01 ELSE r.costx END " "RETURN r") return make_response(jsonify({'success': 'all relationship costs increased'}), 200) 我真的不是一个运动员,所以对这个难题的更广泛的见解是最受欢迎的。

将docker实例与python笔记本连接到Neo4J的Docker实例

我正在运行一个Jupyter笔记本泊坞窗实例( https://github.com/jupyter/docker-stacks/tree/master/all-spark-notebook ),我已经安装了py2neo。 我也运行与端口7474暴露安装Neo4Jdocker集装箱。 问题是我似乎无法连接到笔记本泊坞窗的Neo4J泊坞窗的REST接口。 我认为这个问题与localhost的定义有关。 到目前为止工作。 我只用了Neo4J docker,启动了一个本地笔记本(ipython notebook),接下来的工作就是: 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') 因为localhost的定义是不一样的,相同的代码在单独的docker容器中运行的笔记本中不起作用。 但现在我不明白它应该是什么: 我已经在Neo4J容器上使用docker 检查 ,并使用以下两个试图find对应于我的本地主机的地址: “网关”:“xxx.yy.42.1” “IPAddress”:“xxx.yy.0.3” 但是它们都导致ClientError: 401 Unauthorized 有关如何解决这个问题的任何build议? (请注意,我目前的docker版本是1.7.1,因此不支持networking,但是如果有必要,我可以明显升级。)