Je voulais utiliser la fonction Twitter OAuth sur Google App Engine (GAE) et j'ai essayé de l'exécuter avec requests_oauthlib, mais cela n'a pas fonctionné, donc ce mémo
ssl J'obtiens l'erreur suivante
error.log
Can't connect to HTTPS URL because the SSL module is not available
Incorporez le module ssl comme suit
app.yaml
libraries:
- name: ssl
version: latest
socket Lorsque j'importe le module ssl, j'obtiens l'erreur suivante. Je ne l'ai pas vraiment essayé, mais cela ne semble pas se produire dans un environnement de production.
error.log
must be _socket.socket, not socket
Ajoutez _ssl & _socket à _WHITE_LIST_C_MODULES dans sandbox.py comme ci-dessous
sandbox.py.diff
$ diff /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/python/sandbox.py /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/python/sandbox.py_orig
912,913d911
< '_ssl',
< '_socket',
Remplacez socket.py standard python par GAE socket.py
$ cp /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/dist27/socket.py /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/dist27/socket.py_orig
$ cp /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/dist27/socket.py
Réinsérez le module de requêtes
$ pip uninstall requests
$ pip install requests==2.3
Maintenant ça bouge.
http://tsuboi-sj.hatenablog.com/entry/2015/05/29/164743 https://stackoverflow.com/questions/16192916/importerror-no-module-named-ssl-with-dev-appserver-py-from-google-app-engine/16937668#16937668
Recommended Posts