2017-06-30 4 views
1

J'espère que cela permettra à quelqu'un de gagner du temps. Publier parce que j'ai trouvé très peu d'erreur concernant URLFetch. Je recevais soudainement "AVERTISSEMENT 2017-06-28 23: 09: 40,971 urlfetch_stub.py:550] En-têtes interdits retirés de la demande URLFetch: ['Host']" sur une application Google Adresses fonctionnelle.Problème urlfetch 500/200 de Google App Engine Ubuntu 14.04 (Python 2.7)

La mise à jour de Google Cloud SDK 161.0.0 a été assez aimable pour m'informer que ma version de Python était obsolète. Ubuntu 14.04 est gelé à Python v. 2.7.6

sudo apt-get install build-essential checkinstall 
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev 
sudo apt-get update 

App Engine est actuellement sur Python 2.7.12, j'ai essayé de compiler la source, mais il ne serait pas installer, eu du succès avec ce paquet et ressemble il est à la fin du support.

sudo add-apt-repository ppa:fkrull/deadsnakes-python2.7 
sudo apt-get update 
sudo apt-get install python2.7 

J'ai dû répéter la mise à jour et installer plusieurs fois pour obtenir l'installation du paquet. (Apparemment, les dépendances ont d'autres dépendances.)

python -V 

devrait retourner: Python 2.7.12

+2

L'avertissement 'est juste de urlfetch' un avertissement; Je le vois en utilisant 'urllib2.urlopen' au lieu de' urlfetch' directement. Sous le capot, la requête est effectuée par 'urlfetch', ce qui supprime l'en-tête HOST de la requête' urlopen'. – snakecharmerb

+0

Mon application utilise le moteur de création de modèles Web.py de sorte que l'appel a été fatal à la présentation. J'avais remarqué il y a quelques jours que je pouvais accéder à des champs de chaînes et de nombres entiers dans les données JSON mais quand j'essayais d'accéder aux heures de bureau, je rencontrais curieusement le même problème d'avertissement d'urlfetch. Je suppose que le tuyau urlfetch reste ouvert pour lire mon instance locale des données. Dans mon cas, je devrais probablement ajouter une vérification d'erreur à mes appels aux champs de données. –

Répondre

0

En guise de suivi, après l'installation de python 2.7.12. J'ai commencé à recevoir des avertissements d'information de la part de l'interpréteur App Engine (.local) à la recherche d'un fichier nommé "mime.types" dans divers endroits.

INFO  2017-07-02 15:57:25,701 stubs.py:50] Sandbox prevented access to file "/etc/httpd/mime.types" 
INFO  2017-07-02 15:57:25,701 stubs.py:51] If it is a static file, check that `application_readable: true` is set in your app.yaml 

Dans stubs.py, App Engine boucles à travers "mimetypes.knownfiles" à la recherche d'emplacements suggérés du fichier (différent par OS). Dans Ubuntu 14.04, le fichier se trouve dans la position primaire [0], /etc/mime.types.

Les données de la liste (des emplacements de recherche proposés) se trouve dans knownfiles = [] dans /usr/lib/python2.7/mimetypes.py

https://docs.python.org/2/library/mimetypes.html