HTTPS obtiene el uso del módulo de "solicitudes" en Google App Engine falla
Quiero usar larequests
módulo en Google App Engine Python Standard Runtime Environment.
Cita de Documentos oficiales de Google Cloud:
Puede usar bibliotecas de terceros que son código Python puro sin extensiones C, copiando la biblioteca en el directorio de su aplicación. Si la biblioteca de terceros ya está integrada, incluida con el tiempo de ejecución, puede usar la biblioteca sin copiarla en su aplicación.
Las bibliotecas de terceros deben implementarse como código Python puro sin extensiones C. Si se copia en el directorio de su aplicación, cuentan para las cuotas de archivos porque la biblioteca se carga en App Engine junto con su código de aplicación.
requests
no está incluido con GAE, así que lo agregué a mi carpeta de aplicaciones de acuerdo con las instrucciones.
requests
requirió algunos otros módulos que no vienen con GAE, así que los agregué a mi carpeta de aplicaciones:
certifi
chardet
idna
urllib3
Surgió otro problema. Mi solicitud va a laStack Exchange API, que tiene lahttps://
protocolo. Aquí está el error:
SSLError: HTTPSConnectionPool(host='api.stackexchange.com', port=443): Max retries exceeded with url: /2.2/1?site=stackoverflow (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.",))
Losssl
módulo está integrado en el tiempo de ejecución de GAE Python, así que pongo lo siguiente enapp.yaml
:
libraries:
- name: webapp2
version: latest
- name: ssl
version: latest
No funcionó. Recibí el mismo error que antes. Copié la carpeta del módulo SSL en el directorio de mi aplicación e hiceimport ssl
inmain.py
, pero ahora arroja una excepción pidiendo que se instale otro módulo más:
File "/Users/williamqin/Projects/stackpromo/ssl/__init__.py", line 61, in <module>
import _ssl2 # if we can't import it, let the error propagate
ImportError: No module named _ssl2
Busqué en toda la web la_ssl2
Módulo de Python, ¡pero no pude encontrarlo en ningún lado!
¿Cómo uso correctamente larequests
módulo en Google App Engine?