O HTTPS começa a usar o módulo "solicitações" no Google App Engine falha
Eu quero usar orequests
módulo no ambiente de tempo de execução padrão do Python do Google App Engine.
Citação dodocumentos oficiais do Google Cloud:
Você pode usar bibliotecas de terceiros que são puro código Python sem extensões C,copiando a biblioteca para o diretório do aplicativo. Se a biblioteca de terceiros já estiver integrada, empacotada com o tempo de execução, você poderá usar a biblioteca sem copiá-la no seu aplicativo.
Bibliotecas de terceiros devem ser implementadas como código Python puro, sem extensões C. Se copiados para o diretório do aplicativo, eles contam para cotas de arquivos porque a biblioteca é carregada no App Engine junto com o código do aplicativo.
requests
não está incluído no GAE, então eu o adicionei na pasta do aplicativo de acordo com as instruções.
requests
exigiu alguns outros módulos que não vêm com o GAE, então adicionei todos eles à minha pasta do aplicativo:
certifi
chardet
idna
urllib3
Outro problema surgiu. Meu pedido vai para oAPI do Stack Exchange, que tem ohttps://
protocolo. Aqui está o erro:
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.",))
ossl
O módulo é incorporado ao tempo de execução do GAE Python, então coloquei o seguinte emapp.yaml
:
libraries:
- name: webapp2
version: latest
- name: ssl
version: latest
Não deu certo. Eu recebi o mesmo erro de antes. Copiei a pasta do módulo SSL no diretório do meu aplicativo e fizimport ssl
nomain.py
, mas agora lança uma exceção solicitando a instalação de outro módulo:
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
Eu procurei em toda a web pelo_ssl2
Módulo Python, mas não consegui encontrá-lo em lugar nenhum!
Como uso corretamente orequests
módulo no Google App Engine?