ConnectionError: [Errno 97]

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
nieselfriem
User
Beiträge: 135
Registriert: Sonntag 13. Januar 2013, 16:00

Hallo!

Ich möchte ein durch ein HTTP Request ein JSONfile in ein dictonry packen um es dann weiter zu verarbeiten. Dies funktioniert im interpeter einwandfrei. Wenn ich folgendes ausführe. Es wird mir das JSONFile als Dictonary zurück geliefert.

Code: Alles auswählen

>>> import requests
>>> url="http://maps.googleapis.com/maps/api/directions/json"
>>> requests.get("http://maps.googleapis.com/maps/api/directions/json").json()
{u'routes': [], u'status': u'REQUEST_DENIED', u'error_message': u"Invalid request. Missing the 'origin' parameter."}
Nun habe ich versucht, das in eine dynamische Webseite zu gießen. Dazu verwende ich mod_python auf einem Apache.

Code: Alles auswählen

import requests
page_template = """
<html>
<head>
<title>%s</title>
</head>
<body>
%s
</body>
</html>
"""
def index( req):
        title = "Current Time"
        url="http://maps.googleapis.com/maps/api/directions/json"
        #import datetime
        jsonlist=""
        jsonlist+="ol"
        json=getJsonRequest(url)
        for val in json.itervalues():
                jsonlist+="<li>%s</li>\n" % (val)
        jsonlist+="</ol>"
        return page_template % (jsonlist)


def getJsonRequest(url):
        json=requests.get(url).json()
        return json
Allerdings bekomme ich dort den Fehler:

Code: Alles auswählen

MOD_PYTHON ERROR

ProcessId:      15325
Interpreter:    'yourdomain.com'

ServerName:     'yourdomain.com'
DocumentRoot:   '/var/www/html'

URI:            '/python/jsonreq.py'
Location:       None
Directory:      '/var/www/html/python/'
Filename:       '/var/www/html/python/jsonreq.py'
PathInfo:       ''

Phase:          'PythonHandler'
Handler:        'mod_python.publisher'

Traceback (most recent call last):

  File "/usr/lib64/python2.6/site-packages/mod_python/importer.py", line 1540, in HandlerDispatch
    default=default_handler, arg=req, silent=hlist.silent)

  File "/usr/lib64/python2.6/site-packages/mod_python/importer.py", line 1232, in _process_target
    result = _execute_target(config, req, object, arg)

  File "/usr/lib64/python2.6/site-packages/mod_python/importer.py", line 1131, in _execute_target
    result = object(arg)

  File "/usr/lib64/python2.6/site-packages/mod_python/publisher.py", line 213, in handler
    published = publish_object(req, object)

  File "/usr/lib64/python2.6/site-packages/mod_python/publisher.py", line 425, in publish_object
    return publish_object(req,util.apply_fs_data(object, req.form, req=req))

  File "/usr/lib64/python2.6/site-packages/mod_python/util.py", line 554, in apply_fs_data
    return object(**args)

  File "/var/www/html/python/jsonreq.py", line 19, in index
    json=getJsonRequest(url)

  File "/var/www/html/python/jsonreq.py", line 27, in getJsonRequest
    json=requests.get(url).json()

  File "/usr/lib/python2.6/site-packages/requests/api.py", line 55, in get
    return request('get', url, **kwargs)

  File "/usr/lib/python2.6/site-packages/requests/api.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)

  File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 279, in request
    resp = self.send(prep, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)

  File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 374, in send
    r = adapter.send(request, **kwargs)

  File "/usr/lib/python2.6/site-packages/requests/adapters.py", line 206, in send
    raise ConnectionError(sockerr)

ConnectionError: [Errno 97] Address family not supported by protocol


MODULE CACHE DETAILS

Accessed:       Thu Jun  4 14:11:47 2015
Generation:     1

_mp_b124f03620b6adb527717e74044c3754 {
  FileName:     '/var/www/html/python/jsonreq.py'
  Instance:     1 [IMPORT]
  Generation:   2
  Modified:     Thu Jun  4 14:11:45 2015
  Imported:     Thu Jun  4 14:11:47 2015
}
Ist das ein Konfigurationsproblem oder ein programmiertechnisches?

VG niesel
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Vergiss ``mod_python`` :!:

Nutze ein Webframework; für Dich reicht ein einfaches wie Bottle an dieser Stelle sicherlich aus.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

@nieselfriem: `mod_python` wird von Apache seit 2010 nicht mehr gepflegt.
Antworten