最近几天我安装了 Python 2.7.3 和 Neo4J 社区版 1.8.M01。我设法让嵌入式 python 绑定工作,但由于我需要 py2neo REST 绑定,我已经安装了它们,如http://py2neo.org/中所述。此外,由于“权限被拒绝(公钥)”错误,我无法直接从 git 下载,因此我从下载部分获取了可用的 py2neo-1.2.6.tar.gz 版本。
虽然安装本身不是问题,但我无法让示例像调用 neo4j.GraphDatabaseService(' http://localhost:7474/db/data ') python 崩溃而没有任何错误消息 - Win7 64bit 只弹出显示应用程序未响应的消息。Java、Python 和 Neo4J 都在 64 位基础上运行,服务器可通过http://localhost:7474访问。我什至尝试按照此处所述强制输出:Catching a python app before it exits - 但仍然没有堆栈跟踪或错误日志。
我已经从头开始或通过 www.lfd.uci.edu/~gohlke/pythonlibs/ 提供的可执行文件安装了好几次,但没有任何东西可以让这个例子工作。
我已经安装了 tornado 2.2.1 和 pycurl 7.23.1。pycurl.version_info() 揭示: (3, '7.23.1', 464641, 'Windows', 28, 'OpenSSL/0.9.8s', 0, '1.2.5', ('gopher', 'http', 'https', 'imap', 'imaps', 'pop3', 'pop3s', 'rtsp', 'smtp', 'smtps'), None, 0, None)
- 此外
c = pycurl.Curl()
c.setopt(c.URL, 'http://stackoverflow.com')
c.perform()
返回起始页的内容。
我已经通过 print-messages 跟踪堆栈跟踪到 tornado.IOLoop.start() 并进入 _run_callback() ,它实际上执行 callback() 并崩溃。不确定是否应在此处调用在 tornado.HTTPClient.fetch() 内部定义的回调函数 - 打印回调结果<tornado.stack_context._StackContextWrapper object at ...>
有关如何解决此问题的任何建议?
在此先感谢,罗马
编辑:纠正端口的错字
编辑2:经过更长的调试会话,稍微缩小了故障点,奈杰尔为我提供了一种通过交换来处理我的问题的方法
self._http = http or httpclient.HTTPClient(curl_httpclient.CurlAsyncHTTPClient)
和
self._http = http or httpclient.HTTPClient()
在 rest.py 的第 55 行。这是一种解决方法,但不能解决 tornado/pycurl 后面的问题。Windows 管理控制台将 pycurl.pyd 声明为崩溃的原因,并且由于一些节点(在 GraphDatabaseService 的很少功能初始化之后)存储在 Neo4J 中并且下面的调试输出不再显示,因此必须发生崩溃在发送请求和返回到主应用程序之间。我目前认为,我在 Windows 上的选择民意调查是崩溃的原因,或者 curl-handle 可能在不同线程之间共享 - 这不应该发生(http://curl.haxx.se/libcurl /c/libcurl-tutorial.html ) - 在某种程度上是 imo 最容易理解的原因