6

私はこれが初めてで、Titan を Python で動作させようとしています。私はこれに1日半頭を悩ませてきましたが、どこにも行けません。電球と rexpro-python を試しましたが、何も動作しないようです。

rexpro-pythonでは、次のコード:

from rexpro import RexProConnection
conn = RexProConnection('localhost', 8184, 'graph')

ハングし、サーバーは次のメッセージを生成します (titan バージョン 0.3.2、0.3.1、および 0.2.1 の場合)

13/09/18 16:59:27 WARN filter.RexProMessageFilter: unsupported rexpro version: 1

電球で:

from bulbs.config import Config, DEBUG
from bulbs.rexster import Graph

config = Config('http://localhost:8182/graphs/graph')
g = Graph(config)

次のエラーが発生します。

SystemError: ({'status': '500', 'transfer-encoding': 'chunked', 'server': 'grizzly/2.2.16', 'connection': 'close', 'date': 'Wed, 18 Sep 2013 21:06:27 GMT', 'access-control-allow-origin': '*', 'content-type': 'application/json'}, '{"message":"","error":"javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: groovy.lang.MissingMethodException.idx() is applicable for argument types: () values: []\\nPossible solutions: is(java.lang.Object), any(), find(), any(groovy.lang.Closure), with(groovy.lang.Closure), _(groovy.lang.Closure)","api":{"description":"evaluate an ad-hoc Gremlin script for a graph.","parameters":{"rexster.returnKeys":"an array of element property keys to return (default is to return all element properties)","rexster.showTypes":"displays the properties of the elements with their native data type (default is false)","load":"a list of \'stored procedures\' to execute prior to the \'script\' (if \'script\' is not specified then the last script in this argument will return the values","rexster.offset.end":"end index for a paged set of data to be returned","rexster.offset.start":"start index for a paged set of data to be returned","params":"a map of parameters to bind to the script engine","language":"the gremlin language flavor to use (default to groovy)","script":"the Gremlin script to be evaluated"}},"success":false}')

Titan サーバーでも同様の例外があります。誰かがこれを機能させましたか?

4

2 に答える 2

1

Titan 1.0.0 以降では、python から接続するためのより良い方法があります。

現在、titan には Gremlin サーバーが付属しています。Gremlin サーバーは、非 JVM 言語 (Python、Javascript など) が TinkerPop スタックと通信する機能を提供します。

Gremlin Server はRexsterの後継です。

gremlin サーバーを起動するには (このスクリプトは titan に同梱されています):

sh gremlin-server.sh 

同じディレクトリ内のウィンドウで同様のバッチ スクリプトを使用できます。

起動すると、次の Python ドライバーが Gremlin サーバーとの接続に役立ちます。

  • aiogremlin - Websocket を使用して Gremlin サーバーと通信する asyncio および aiohttp に基づく Python 3 ライブラリ.
  • gremlinclient - 柔軟なコルーチン構文 (Trollius, Tornado, Asyncio) を可能にする Gremlin Server 用の非同期 Python 2/3 クライアント. これは aiogremlin と同じ作者によるものです。aiogremlin はもはやサポートされていないと思います。これは彼が取り組んでいる最新のプロジェクトです。
  • gremlinrestclient - HTTP を使用して REST 経由で Gremlin サーバーと通信する Python 2/3 ライブラリ.

開発中に役立つ Python ベースのクエリ言語ライブラリ:

  • gremlin-py - Gremlin Server に送信できる純粋な Python Gremlin を記述します.
  • gremlin-python - プロパティ グラフをトラバースするときに Python 構文を使用できるようにします.
于 2016-05-09T11:37:02.747 に答える