ipython-Python 中的密码:cypher.run.Connection 对象参数

ipython-cypher in Python: cypher.run.Connection object parameter

我正在尝试在 Python 程序中使用 ipython-cypher 来 运行 Neo4j Cypher 查询(和 return Pandas 数据帧) .在使用 IPython Notebook 时,我可以轻松地建立连接并 运行 查询,但是当我尝试 运行 在 IPython 之外进行相同的查询时,根据文档:

http://ipython-cypher.readthedocs.org/en/latest/introduction.html#usage-out-of-ipython

import cypher

results = cypher.run("MATCH (n)--(m) RETURN n.username, count(m) as neighbors", 
          "http://XXX.XXX.X.XXX:xxxx")

我收到以下错误: neo4jrestclient.exceptions.StatusException:代码 [401]:未经授权。无许可——参见授权方案。 需要授权

格式:(http|https)://用户名:密码@主机名:port/db/name,或dict_keys([])

之一

现在,我只是猜测我应该如何输入一个 Connection 对象作为最后一个参数,因为我找不到任何其他文档来解释如何使用 Python 连接到远程主机,在 IPython 中,我能够做到:

%load_ext cypher
results = %cypher http://XXX.XXX.X.XXX:xxxx MATCH (n)--(m) RETURN n.username, 
count(m) as neighbors

如有任何见解,我们将不胜感激。谢谢。

文档中有一节 API。当在 IPython 之外使用并且需要连接到不同的主机时,只需使用参数 conn 并传递一个字符串就可以了。

import cypher

results = cypher.run("MATCH (n)--(m) RETURN n.username, count(m) as   neighbors",
                     conn="http://XXX.XXX.X.XXX:xxxx")

但还要考虑到 Neo4j 2.2 中新的身份验证支持,您需要在从 ipython-cypher 连接之前设置新密码。我会在 neo4jrestclient 下的库中实施强制密码更改机制后立即修复此问题。