python NameError中的gremlin无法识别功能

时间:2019-01-07 17:21:47

标签: python graph jupyter-notebook gremlin tinkerpop

我正在Jupyter笔记本中运行Gremlin-Pyton,由于某些原因,以下操作不起作用:

g.V().group().by().by(bothE().count())

我不断收到错误消息:

NameError: name 'bothE' is not defined

1 个答案:

答案 0 :(得分:0)

如果您遵循typical imports listed in the documentation

>>> from gremlin_python import statics
>>> from gremlin_python.structure.graph import Graph
>>> from gremlin_python.process.graph_traversal import __
>>> from gremlin_python.process.strategies import *
>>> from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection

然后bothE作为__.bothE可用。

可以使用以下命令将__命名空间中的方法添加到笔记本全局变量中:

>>> statics.load_statics(globals())

因此您可以不带前缀直接访问bothE

从文档中引用:

  

此外,通过导入Gremlin-Python的静态函数,可以省略类前缀。

>>> statics.load_statics(globals())

  

最后,静态方法包括所有-methods,因此,像.out()这样的匿名遍历可以表示如下。也就是说,没有__.前缀。

>>> g.V().repeat(out()).times(2).name.fold().toList()
[[ripple, lop]]

注意事项:我不是Gremlin-Python用户,对我来说,安装Gremlin来完全验证上述内容也不实际。我的基础是阅读文档并扫描项目源代码。