descargar - Uso de la biblioteca Python de solicitudes en Google App Engine
descargar google app engine para python (3)
Como se mencionó, la rama principal de urllib3 independiente supuestamente ahora es compatible con AppEngine (Haré una versión de PyPI adecuada una vez que alguien confirme este hecho), pero Requests aún no es compatible con App Engine ya que asume varias cosas del sistema de archivos para cargar archivos de configuración que no funcionan Existen en App Engine. Específicamente, el error que se encontró tiene que ver con la carga del archivo de configuración ~/.netrc
.
Vea el Issue # 493 .
Por lo que vale, el equivalente en urllib3 sería:
import urllib3
http = urllib3.PoolManager()
response = http.request(''GET'', ''someurl'')
Actualización: urllib3 v1.3 fue lanzado ayer, que incluye soporte de AppEngine.
Intento utilizar la impresionante biblioteca de solicitudes en Google App Engine. Encontré un parche para urllib3, que depende de las solicitudes, que es compatible con App Engine. https://github.com/shazow/urllib3/issues/61
Puedo exitosamente
import requests
pero entonces
response = requests.get(''someurl'')
falla con el siguiente rastreo. ¿Que esta pasando?
Traceback (most recent call last):
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/admin/__init__.py", line 317, in post
exec(compiled_code, globals())
File "<string>", line 6, in <module>
File "/Users/Rohan/Dropbox/MuktiTechnologiesINC/MuktiTechnologies/GAE/humanmictweet/GAE/libraries/requests/api.py", line 52, in get
return request(''get'', url, **kwargs)
File "/Users/Rohan/Dropbox/MuktiTechnologiesINC/MuktiTechnologies/GAE/humanmictweet/GAE/libraries/requests/api.py", line 40, in request
return s.request(method=method, url=url, **kwargs)
File "/Users/Rohan/Dropbox/MuktiTechnologiesINC/MuktiTechnologies/GAE/humanmictweet/GAE/libraries/requests/sessions.py", line 208, in request
r.send(prefetch=prefetch)
File "/Users/Rohan/Dropbox/MuktiTechnologiesINC/MuktiTechnologies/GAE/humanmictweet/GAE/libraries/requests/models.py", line 458, in send
self.auth = get_netrc_auth(url)
File "/Users/Rohan/Dropbox/MuktiTechnologiesINC/MuktiTechnologies/GAE/humanmictweet/GAE/libraries/requests/utils.py", line 43, in get_netrc_auth
for loc in locations:
File "/Users/Rohan/Dropbox/MuktiTechnologiesINC/MuktiTechnologies/GAE/humanmictweet/GAE/libraries/requests/utils.py", line 40, in <genexpr>
locations = (os.path.expanduser(''~/{0}''.format(f)) for f in NETRC_FILES)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/posixpath.py", line 260, in expanduser
userhome = pwd.getpwuid(os.getuid()).pw_dir
AttributeError: ''module'' object has no attribute ''getuid''
En Google Appengine (versión 1.9.18), las requests versión 2.3.0 (¡solo!) Funcionan EN PRODUCCIÓN (pero no en SDK) si tiene habilitada la facturación, lo que permite el soporte de sockets.
las solicitudes en el Appengine SDK falla con todas las solicitudes https: //:
ConnectionError: (''Connection aborted.'', error(13, ''Permission denied''))
solicita que la versión 2.4.1 falla con:
File "distlib/requests/adapters.py", line 407, in send
raise ConnectionError(err, request=request)
ConnectionError: (''Connection aborted.'', error(13, ''Permission denied''))
las solicitudes de la versión 2.5.1 fallan con:
File "distlib/requests/adapters.py", line 415, in send
raise ConnectionError(err, request=request)
ConnectionError: (''Connection aborted.'', error(13, ''Permission denied''))
Información sobre el soporte de sockets: https://cloud.google.com/appengine/docs/python/sockets/
PD: Reemplázate con algo muy doloroso si tienes la intención de usar las solicitudes en GAE.
Consulte también: ¿Se puede usar la biblioteca Python Requests en Google App Engine?
Puede usar la última versión de Solicitudes en Google App Engine con la ayuda de requests-toolbelt . Esto configura las solicitudes para usar el soporte subyacente de urllib3 para el servicio URLFetch de App Engine.