2016-04-14 7 views
2

Ich versuche, meine Anwendung auf pythonanywhere bereitzustellen, aber ich kann keine Verbindung zu Twitter herstellen."[Errno 111] Verbindung abgelehnt" auf Pythonanywhere

Hier ist der Fehler, die ich erhalte: -

Traceback (most recent call last): 
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1687, in wsgi_app 
response = self.full_dispatch_request() 
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1360, in full_dispatch_request 
rv = self.handle_user_exception(e) 
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1358, in full_dispatch_request 
rv = self.dispatch_request() 
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1344, in dispatch_request 
return self.view_functions[rule.endpoint](**req.view_args) 
File "/home/btpraasta/btp_raasta/runServer.py", line 178, in remainingRequests 
return (str)(getTrend.get_remainingRequests()) 
File "/home/btpraasta/btp_raasta/python/getTrend.py", line 20, in get_remainingRequests 
data = get_json(url) 
File "/home/btpraasta/btp_raasta/python/getTrend.py", line 10, in get_json 
connection = urllib.urlopen(url, proxies=proxies) 
File "/usr/lib/python2.7/urllib.py", line 87, in urlopen 
return opener.open(url) 
File "/usr/lib/python2.7/urllib.py", line 208, in open 
return getattr(self, name)(url) 
File "/usr/lib/python2.7/urllib.py", line 437, in open_https 
h.endheaders(data) 
File "/usr/lib/python2.7/httplib.py", line 975, in endheaders 
self._send_output(message_body) 
File "/usr/lib/python2.7/httplib.py", line 835, in _send_output 
self.send(msg) 
File "/usr/lib/python2.7/httplib.py", line 797, in send 
self.connect() 
File "/usr/lib/python2.7/httplib.py", line 1178, in connect 
self.timeout, self.source_address) 
File "/usr/lib/python2.7/socket.py", line 571, in create_connection 
raise err 
IOError: [Errno socket error] [Errno 111] Connection refused 

Der Code, den ich dies auszuführen versuchen ist: -

proxies = {'http': 'http://proxy.server:3128'} 
connection = urllib.urlopen(url, proxies=proxies) 
data = connection.read() 

Und ich versuche auch die folgende URL zugreifen: -

Ich habe ein kostenloses Konto auf pythonanywhere und verifiziert, dass die API Whitelist ist und ich den Proxy verwenden, wie von ihnen beschrieben er wieder (http://help.pythonanywhere.com/pages/403ForbiddenError).

+1

Wenn Sie den Fehler "111 Connection refused" erhalten, ignoriert er Ihre Proxy-Einstellungen aus irgendeinem Grund, oder sie sind nicht die richtigen Einstellungen (obwohl sie für mich vollkommen OK aussehen). Haben Sie überlegt, 'Anfragen' zu verwenden, anstatt' urllib' direkt zu verwenden? Konfigurieren von Proxy-Einstellungen ist fiddly, und 'urllib' kann schwer zu codieren sein. 'requests' sind einfacher zu verwenden und es wählt die Proxy-Konfiguration aus den Umgebungsvariablen aus, so dass Sie diese nicht selbst einrichten müssen. –

+0

Ah, ein mögliches Problem in den Proxy-Einstellungen - vielleicht verwenden Sie tatsächlich https, oder der Endpunkt, den Sie schlagen, leitet Sie zu https um? Sie könnten versuchen, '{" https ":" http: //proxy.server: 3128 "}' zu Ihrem Wörterbuch hinzuzufügen, um damit umzugehen. –

+1

Ich habe versucht, '{" https ":" http: //proxy.server: 3128 "}' aber das hat nicht funktioniert. Mit 'Anfragen' anstelle von' Urllib' wurde das erledigt. Du kannst das als Antwort machen! Vielen Dank! –

Antwort

2

Kopieren Sie meinen Kommentar zu einer richtigen Antwort: Proxies mit urllib arbeiten kann schwierig sein. requests ist im Allgemeinen viel einfacher zu bedienen und ruft Proxy-Einstellungen aus Umgebungsvariablen ab. Definitiv zu empfehlen!