我是新手,我正在努力让Titan使用Python。我已经在这一天打了一个半天,无法到达任何地方。我尝试过灯泡和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服务器上有类似的例外。有没有人得到这个工作?
答案 0 :(得分:1)
对于rexpro-python,您有版本问题。最新版本的RexPro Python将连接到TinkerPop / Rexster 2.4.0。 Titan尚不支持该版本。截至Titan 0.3.2,它支持TinkerPop 2.3.x.看起来这是rexpro-python碰撞到2.4.0之前的最后一次提交:
https://github.com/bdeggleston/rexpro-python/commit/3597f4ce5a4da69ec64f174aa1a064abf7524693
但您可能需要稍微查看提交历史记录,以确保获得正确的提交历史记录。
灯泡似乎正在调用手动索引,这是Titan不支持的。 gremlin-users和/或areuliusgraphs邮件列表中有很多帖子。查看此帖子并提及您的确切问题:
https://groups.google.com/forum/#!msg/gremlin-users/s7Ag1tjbxLs/nC5WjtHh6woJ
简短回答看起来Bulbs已更新以支持Titan。也许,你在某处仍然存在一些版本不兼容。
答案 1 :(得分:1)
使用Titan 1.0.0或更高版本,我们有更好的方法从python连接。
现在泰坦带有Gremlin服务器。 Gremlin服务器为非JVM语言(例如Python,Javascript等)提供了与TinkerPop堆栈通信的能力。
Gremlin Server是Rexster的替代品。
启动gremlin服务器(此脚本与titan一起打包):
sh gremlin-server.sh
类似的批处理脚本可用于同一目录中的Windows。
一旦启动,以下python驱动程序应该有助于连接Gremlin服务器:
基于Python的查询语言库,可以在开发过程中提供帮助: