【问题标题】:How do i upload tinkergraph into python/gremlin?如何将 tinkergraph 上传到 python/gremlin?
【发布时间】:2018-12-10 14:55:26
【问题描述】:

我正在尝试在 python 中使用 gremlin。我导入了以下内容:

from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection
from gremlin_python.structure.graph import Graph
from gremlin_python import statics
from gremlin_python.process.graph_traversal import __
from gremlin_python.process.strategies import *
from gremlin_python.process.traversal import *
import asyncio
statics.load_statics(globals()) 

当我运行这个时:

graph = TinkerGraph.open() 
graph.io(graphml()).readGraph('air-routes.graphml') 

我收到以下错误:

NameError: name 'TinkerGraph' is not defined

我该如何解决这个问题?

【问题讨论】:

标签: python graph gremlin tinkerpop gremlinpython


【解决方案1】:

Python 中没有 TinkerGraph。在 gremlin-python 中,您只能在服务器上远程获得对图形的引用,这可能是 TinkerGraph 或其他东西。如果您想以这种方式加载数据,则必须通过 Client 实例将该命令作为脚本发出:

client = Client('ws://localhost:45940/gremlin', 'g')
client.submit("graph.io(graphml()).readGraph('air-routes.graphml');[]").all().result()

该脚本中的“graph”是服务器上已存在的Graph 实例(并且可能为空)。如果您使用 Gremlin Server,您可能会考虑将加载作为Gremlin Server startup 的一部分单独加载,然后仅使用 gremlin-python 来查询该数据。在这个例子中这可能是最好的,因为数据只会在服务器启动时出现。

请注意,在 3.4.0 中,我们引入了 io() 步骤,它将直接成为 gremlin-python 的一部分,此时您将能够直接执行:

g.io('air-routes.xml').read()

在本机 python 中,它可以正常工作(同样,Graph 实例必须远程定义)尽管文件​​必须可由服务器读取。

这是我在 Python shell 中提交脚本的工作示例,首先出现龙卷风错误,然后没有:

$ env/bin/python
Python 3.4.3 (default, Nov 28 2017, 16:41:13) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from gremlin_python.driver.client import Client
>>> client = Client('ws://localhost:8182/gremlin', 'g')
>>> client.submit("g.V()").all().result()
Traceback (most recent call last):
  File "/home/smallette/git/apache/incubator-tinkerpop/gremlin-python/target/python3/gremlin_python/driver/client.py", line 51, in __init__
    from gremlin_python.driver.tornado.transport import (
  File "/home/smallette/git/apache/incubator-tinkerpop/gremlin-python/target/python3/gremlin_python/driver/tornado/transport.py", line 19, in <module>
    from tornado import ioloop, websocket
ImportError: No module named 'tornado'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/smallette/git/apache/incubator-tinkerpop/gremlin-python/target/python3/gremlin_python/driver/driver_remote_connection.py", line 45, in __init__
    password=password)
  File "/home/smallette/git/apache/incubator-tinkerpop/gremlin-python/target/python3/gremlin_python/driver/client.py", line 54, in __init__
    raise Exception("Please install Tornado or pass"
Exception: Please install Tornado or passcustom transport factory
>>> exit
Use exit() or Ctrl-D (i.e. EOF) to exit
>>> exit()
$ env/bin/pip install tornado
Collecting tornado
Collecting backports-abc>=0.4 (from tornado)
  Using cached https://files.pythonhosted.org/packages/7d/56/6f3ac1b816d0cd8994e83d0c4e55bc64567532f7dc543378bd87f81cebc7/backports_abc-0.5-py2.py3-none-any.whl
Installing collected packages: backports-abc, tornado
Successfully installed backports-abc-0.5 tornado-5.1.1
smallette@ubuntu:~/git/apache/incubator-tinkerpop/gremlin-python/target/python3$ env/bin/python
Python 3.4.3 (default, Nov 28 2017, 16:41:13) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from gremlin_python import statics
>>> client = Client('ws://localhost:8182/gremlin', 'g')
>>> client.submit("g.V()").all().result()
[v[0]]

【讨论】:

  • 当我运行 client = Client('ws://localhost:45940/gremlin', 'g') 它说它需要'例外:请安装 Tornado 或 passcustom 传输工厂'。然后我从 gremlin_python.driver.tornado.transport 导入(TornadoTransport) - 但后来我收到错误:ImportError: cannot import name 'TracebackFuture'
  • 我猜你需要安装docs.python.org/3/library/…
  • 如果你的意思是'import concurrent.futures'那么我已经有了它..我仍然得到同样的错误。我已经安装了龙卷风,当我使用这个语句时:'import tornado.web' 我收到一个错误。
  • 你能看到我更新的答案吗?也许只需在你的 python shell 中尝试一下,看看它是否有效。请注意,我收到了您最初使用龙卷风时遇到的错误,通过使用 pip 安装龙卷风来解决它,然后就可以了。也许您在某个地方仍然存在依赖问题?
  • 相信我会检查这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-26
  • 1970-01-01
  • 2018-09-23
  • 2010-10-21
  • 2020-11-19
相关资源
最近更新 更多