Nach dem Update von 1.7.5 (wo alles gut geklappt hat) bekomme ich einen HTTP Error 403: Forbidden beim Versuch, irgendwelche Seiten über localhost zu öffnen. Seltsame Sache ist, dass ich so ziemlich das gleiche Setup zuhause habe wie hier bei der Arbeit und alles funktioniert dort ... Könnte ein Problem mit Proxy-Server sein, den wir bei der Arbeit benutzen, da das der einzige Unterschied ist, den ich mir vorstellen kann? Hier ist das Fehlerprotokoll, das ich bekomme, also wenn jemand weiß, was los ist, bitte helfe (;
%Vor%Außerdem gibt der Launcher beim Schließen einen Fehler aus:
%Vor%Ich hatte genau dieses Problem mit meinem MacOSX bei Verwendung eines Proxy-Servers mit Google App Engine Launcher 1.8.6. Anscheinend gibt es ein Problem mit "proxy_bypass" auf "urllib2.py".
Es gibt zwei mögliche Lösungen:
Bearbeiten Sie "[GAE Instalation path] /google/appengine/tools/appengine_rpc.py" und suchen Sie nach der Zeile
opener.add_handler(fancy_urllib.FancyProxyHandler())
In meinem Computer war es Zeile 578, und dann legte man einen Hash (#) am Anfang der Zeile, wie folgt:
%Vor%Speichern Sie die Datei, stoppen Sie und starten Sie Ihre Anwendung neu. Jetzt sollte dev_appserver.py nicht versuchen, irgendeinen Proxyserver zu benutzen.
Wenn Ihre Anwendung externe Ressourcen wie einen SOAP-Webservice oder etwas Ähnliches verwendet und Sie den Server nicht ohne den Proxyserver erreichen können, müssen Sie ein Downgrade durchführen. Bitte beachten Sie, dass externe Javascript-Dateien (wie Facebook SDK oder ähnliches) von Ihrem Browser geladen werden, nicht von Ihrer Anwendung.
Da ich keine externen REST- oder SOAP-Dienste verwende, funktionierte es für mich!
Hoffentlich wird es auch für Sie funktionieren.
Probieren Sie entweder: - Zugriff über einen anderen Proxy. I.E a. Proxy in einem Proxy - Zugriff über Ihre lokale IP, z. B. 192.168.1.1
Ich hatte dasselbe Problem mit Version 1.9.5. Scheint, dass der API-Proxy einige RPCs an den Proxy-Server sendet, die dann mit HTTP 403 zurückgewiesen werden (da Proxy-Server im Allgemeinen so konfiguriert sind, dass sie Verbindungsversuche zu beliebigen Ports ablehnen). In meinem Fall nutzte ich das urlfetch
-Modul in meiner App, um auf externe Webseiten zuzugreifen. Daher war die Deaktivierung des Proxy-Servers keine Wahl für mich.
So habe ich vor einiger Zeit an dem Problem gearbeitet (wahrscheinlich basiert es auf Kommentaren, die unter dieses Problem , aber ich kann mich nicht an die genauen Quellen erinnern).
HINWEIS:
Hier geht es:
Deaktivieren Sie die Proxyeinstellungen für die Python-Umgebung (Google App Engine Launcher). (In meinem Fall war es einfach, da ich das dev_appserver.py
von einer Terminal-Shell (unter Linux) gestartet habe, und die Befehle unset http_proxy
und unset https_proxy
haben es geschafft.)
Bearbeiten {App Engine SDK root}/google/appengine/api/urlfetch_stub.py
. Suchen Sie den Codeblock
(Zeilen 376-379 in meinem Fall) und ersetzen Sie es durch:
%Vor% Ersetzen Sie die Platzhalter your_proxy_host_goes_here
und your_proxy_port_number_goes_here
durch geeignete Werte.
(Ich glaube, dass dieser Code eleganter geschrieben werden kann, obwohl ... irgendwelche Python-Geeks da draußen? :))
In meinem Fall musste ich auch die vorhandene kompilierte Datei urlfetch_stub.pyc
(im selben Verzeichnis wie urlfetch_stub.py
) löschen, weil das SDK die Änderungen anscheinend erst übernommen hat.
Jetzt können Sie dev_appserver
verwenden, um Ihre App zu starten, und urlfetch
-backed Dienste innerhalb der App verwenden, frei von HTTP 403-Fehlern.
Tags und Links python google-app-engine devserver