<p>我想你刚刚抓到了一些零碎的代码、脚本和答案,在TinkerPop多年的发展过程中,它们在不同版本上是不匹配的。在</p>
<p>我认为你只需要重新开始并简化。在</p>
<ol>
<li>确定最近必须发布的3.4.3版本和<a href="https://www.apache.org/dyn/closer.lua/tinkerpop/3.4.3/apache-tinkerpop-gremlin-server-3.4.3-bin.zip" rel="nofollow noreferrer">download</a>Gremlin服务器。在</li>
<li>解压并使用以下命令启动服务器:<code>bin/gremlin-server.sh conf/gremlin-server-modern.yaml</code>,最初尝试以“localhost”的身份从连接,这样就不需要更改配置,并且保持简单。在</li>
<li>验证是否可以使用<a href="http://tinkerpop.apache.org/docs/3.4.3/reference/#connecting-via-console" rel="nofollow noreferrer">Gremlin Console</a>连接到它。在</li>
<li>现在安装gremlinpython,确保pip使用3.4.3。在</li>
</ol>
<p>在这一点上,我希望以下代码可以开箱即用:</p>
<pre><code>g=traversal().withRemote(DriverRemoteConnection('ws://localhost:8182/gremlin','g'))
print (g.V().count().toList())
</code></pre>
<p>注意,我用<code>toList()</code>终止了遍历(我注意到您的代码没有这样的<a href="http://tinkerpop.apache.org/docs/3.4.3/reference/#terminal-steps" rel="nofollow noreferrer">terminating step</a>)-没有这个步骤,遍历就不会是{a4}。我不确定这是否是你面临的问题的一部分。在</p>
<p>对于这个命令:</p>
^{pr2}$
<p>如果要将本机python lambda发送到服务器,则只需要运行该命令。虽然这听起来不错,但请记住,如果可能的话,您应该尽量避免使用lambdas,而且python脚本引擎在缓存和执行方面没有Groovy脚本引擎那么健壮。如果一定要使用lambda,那么即使是用Python编写代码,我也会选择Groovy。也就是说,我不知道为什么在服务器启动时会出现错误(fwiw,我实际上用<code>conf/gremlin-server-modern-py.yaml</code>测试了简单的启动,它没有出错)。也许如果你用一个新的设置重试,你会有一个干净的开始。在</p>
<p>一旦建立了基本配置,就可以进行调整,比如修改Gremlin服务器yaml文件中的<code>host</code>配置,以便可以从外部IP地址连接到它。在</p>