【问题标题】:how to resolve "urllib2.URLError: <urlopen error [Errno 111] Connection refused>"如何解决“urllib2.URLError:<urlopen 错误 [Errno 111] 连接被拒绝>”
【发布时间】:2018-07-17 17:19:50
【问题描述】:

我在以下位置找到了示例代码 https://github.com/RDFLib/sparqlwrapper/blob/master/scripts/example.py

我稍微修改了一下

from SPARQLWrapper import SPARQLWrapper, JSON, XML, N3, RDF, CSV, TSV
sparql = SPARQLWrapper("http://dbpedia.org/sparql")
sparql.setQuery("""
SELECT ?subject ?predicate ?object
FROM <http://graph.something.com>
FROM <http://ontology.something.com>
WHERE {
?subject ?predicate ?object
} LIMIT 10
""")
# JSON example
print '\n\n*** JSON Example'
sparql.setReturnFormat(JSON)
results = sparql.query().convert()
for result in results["results"]["bindings"]:
print result["label"]["value"]

大部分都不起作用,但是当我指向 dbpedia.org 站点时,我需要的部分确实起作用。但是,当我将它定向到我自己的网站时(除了我以外的任何人都无法访问),我收到如下错误:

*** JSON Example Traceback (most recent call last):   File "test01.py", line 29, in <module>
    results = sparql.query().convert()   File "/usr/local/lib/python2.7/dist-packages/SPARQLWrapper/Wrapper.py", line 798, in query
    return QueryResult(self._query())   File "/usr/local/lib/python2.7/dist-packages/SPARQLWrapper/Wrapper.py", line 766, in _query
    response = urlopener(request)   File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)   File "/usr/lib/python2.7/urllib2.py", line 429, in open
    response = self._open(req, data)   File "/usr/lib/python2.7/urllib2.py", line 447, in _open
    '_open', req)   File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)   File "/usr/lib/python2.7/urllib2.py", line 1228, in http_open
    return self.do_open(httplib.HTTPConnection, req)   File "/usr/lib/python2.7/urllib2.py", line 1198, in do_open
    raise URLError(err) urllib2.URLError: <urlopen error [Errno 111] Connection refused>

知道发生了什么,更重要的是如何解决?

【问题讨论】:

  • 根据错误信息,您的标签和标题不适合该问题。我认为这与 JSON、Python、SPARQLWrapper 或 urllib2 无关,归结为网络、防火墙和/或您的连接配置。这看起来像是错误的操作部分——&lt;urlopen error [Errno 111] Connection refused&gt;。检查您的 Virtuoso 的 [HttpServer] ServerPort(在 INI 文件中设置),并确保您的 Python 客户端可以连接到 Virtuoso 服务器主机上的该端口。
  • 这就是问题所在。我与我的系统管理员/网络管理员交谈,他在 5 分钟内解决了问题。

标签: python urllib2 virtuoso sparqlwrapper


【解决方案1】:

这是错误的操作部分——

<urlopen error [Errno 111] Connection refused>

检查您的 Virtuoso 的 [HttpServer] ServerPort(在 INI 文件中设置),并确保您的 Python 客户端可以连接到 Virtuoso 服务器主机上的该端口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    相关资源
    最近更新 更多