[PYTHON] Was tun, wenn in GAE "Typfehler: muss _socket.socket sein, nicht Socket" angezeigt wird

Überblick

Ich wollte die Twitter-OAuth-Funktion in Google App Engine (GAE) verwenden und habe versucht, sie mit request_oauthlib auszuführen, aber es hat nicht funktioniert, also dieses Memo

Situation / Gegenmaßnahmen

ssl Ich erhalte den folgenden Fehler

error.log


Can't connect to HTTPS URL because the SSL module is not available

Integrieren Sie das SSL-Modul wie folgt

app.yaml


libraries:
- name: ssl
  version: latest

socket Wenn ich das SSL-Modul importiere, wird der folgende Fehler angezeigt. Ich habe es noch nicht ausprobiert, aber dies scheint in einer Produktionsumgebung nicht zu passieren.

error.log


must be _socket.socket, not socket

Fügen Sie _ssl & _socket zu _WHITE_LIST_C_MODULES in sandbox.py wie folgt hinzu

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',

Überschreiben Sie den Python-Standard socket.py mit 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

Fügen Sie das Anforderungsmodul erneut ein

$ pip uninstall requests
$ pip install requests==2.3

Jetzt bewegt es sich.

Referenz

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

Was tun, wenn in GAE "Typfehler: muss _socket.socket sein, nicht Socket" angezeigt wird
Was tun, wenn bei Verwendung von strptime "TypeError: muss Zeichenfolge sein, nicht int ..." angezeigt wird
Was tun, wenn "TypeError: Datentyp nicht verstanden" in der Python-Datei numpy.zeros angezeigt wird?
[Python] Typ Fehler: 'WebElement'-Objekt ist nicht iterierbar Was tun, wenn ein Fehler auftritt?
Verfahren, die durchgeführt werden müssen, wenn Japanisch nicht in matplotlib angezeigt wird
Was tun, wenn python3 venv auf Raspberry Pi nicht gut funktioniert?
[virtualbox] Was tun, wenn [Spiegelliste nicht abgerufen werden konnte] angezeigt wird, wenn ein yum-Update unter CentOS7 durchgeführt wird?
Was tun, wenn pyinstaller: error: argument --add-binary: ungültig add_data_or_binary value: angezeigt wird
[Docker] Was tun, wenn ein Fehler aufgetreten ist? Der Binär-Git wurde nicht gefunden
Hinweise, was zu tun ist, wenn das Löschen von Schatten nicht mit Scatter () / Scatter3d () von Matplotlib funktioniert
Was tun, wenn bei der Installation von CentOS auf VirtualBox die Meldung "Die Sitzung konnte nicht geöffnet werden" angezeigt wird
[Go 1.13] Was tun, wenn ein unerwartetes Verzeichnislayout angezeigt wird?
[openpyxl] Was tun, wenn IllegalCharacterError in pandas.DataFrame.to_excel angezeigt wird?
Was tun, wenn ValueError, "nicht unterstützter Hash-Typ" ausgelöst wird?
Was zu tun ist, wenn es nicht in der Sudoers-Datei enthalten ist. Dieser Vorfall wird gemeldet.
Was tun, wenn bei Verwendung von ts-node-dev unter Linux der Fehler "ERR_FEATURE_UNAVAILABLE_ON_PLATFORM" angezeigt wird?
Was tun, wenn beim Aktualisieren von conda ein Fehler beim Entfernen auftritt?
Was tun, wenn beim Importieren von _ssl ein Fehler auftritt?
Was tun, wenn in Python "SSL: CERTIFICATE_VERIFY_FAILED _ssl.c: 1056" angezeigt wird?
OSError: [Errno 40] Was tun, wenn die Nachricht zu lang erscheint?
Was tun, wenn in Django "Ungültiger HTTP_HOST-Header" angezeigt wird?
Was tun, wenn Ubuntu abstürzt?
Was tun, wenn ein Video von cv2.VideoCapture nicht gelesen werden kann?
[Beanstalk] Was tun, wenn beim Importieren der UUID ein Fehler auftritt?
Was tun, wenn die Einstellungen der jupyterlab-Erweiterung nicht angezeigt werden?
Was tun, wenn beim Ausführen von Python eine Warnung zur unsicheren Plattform angezeigt wird?
Was tun, wenn beim Versuch, model.save mit Keras zu modellieren, der Fehler "get_config" überschrieben werden muss?
Was tun, wenn PyAudio unter Python 3.7, 3.8, 3.9 unter Windows nicht installiert werden kann?
[PySerial] Was ist zu beachten, wenn ein "Port konnte nicht geöffnet werden" / dev / cu. "Während der seriellen Kommunikation mit micro: bit tritt ein Fehler auf
Was tun, wenn der Werttyp in Python nicht eindeutig ist?
Was tun, wenn beim Versuch, auf den Git-Hub zuzugreifen, der Fehler "Berechtigung verweigert" (öffentlicher Schlüssel) angezeigt wird?
[Memorandum] Was tun, wenn nach dem Ausführen der Pip-Liste eine Warnung angezeigt wird?
Was tun, wenn bei der Installation von pyenv kein Fehler auftritt?
[Python] Was tun, wenn ein Fehler im Zusammenhang mit der SSL-Authentifizierung zurückgegeben wird?
Was tun, wenn beim Importieren von numpy mit VScode ein Fehler auftritt?
Was tun, wenn beim Laden von mnist eine Fehlermeldung angezeigt wird?
Was tun, wenn in der Anaconda-Umgebung die Warnung "Die Umgebung ist konsistent ..." angezeigt wird
[OSX] [pyenv] Was tun, wenn in pip ein SSL-Fehler auftritt?
Was tun, wenn psycopg2 einen Fehler auslöst, wenn pipenv in einer Pipenv-Umgebung gesperrt wird?
Beispiel, was zu tun ist, wenn das Beispielskript nicht funktioniert (OpenCV-Python)
Was tun, wenn CERTIFICATE_VERIFY_FAILED auftritt, wenn nltk.download () unter macOS pyhon ausgeführt wird?
[Python] Was tun, wenn bei send_keys in Headless Chrome ein Fehler auftritt?
Was tun, wenn ein SSL-Fehler mit pip in einer Windows10-, Miniconda- oder VScode-Umgebung auftritt?
Was tun, wenn bei der Installation von Python mit pyenv eine Fehlermeldung angezeigt wird?
Was tun, wenn [Errno 2] in Python keine solche Datei oder kein solches Verzeichnis angezeigt wird?
Was tun, wenn das Diagramm nicht auf dem Jupyter-Notizbuch (Ipython) angezeigt wird?
Was tun, wenn NotADirectoryError: [Errno 20] Kein Verzeichnis: 'xdg-settings' wird im Jupyter-Notizbuch angezeigt
[EC2] Was tun, wenn Selen festsitzt und die Verarbeitung nicht fortgesetzt wird?
Was tun, wenn die japanische Unterstützung unter Ubuntu 16.04 nicht vollständig installiert ist?
Was tun, wenn unter Ubuntu 20.04 ein SSL-Verbindungsfehler (ssl.SSLError: [SSL: DH_KEY_TOO_SMALL]) auftritt?
Was tun, wenn pip nicht installiert werden kann?
Was tun, wenn ein PermissionError in tempfile.mkstemp auftritt?
So schreiben Sie in Error Repoting in Python auf GAE
Was tun, wenn bei der Installation von Python 2 mit pyenv ein OpenSSL-Fehler auftritt?
Was tun, wenn beim Importieren von matplotlib in Python (Mac) eine Fehlermeldung angezeigt wird?
Was tun, wenn Pythons IntelliSense in VS Code unter Windows nicht angezeigt wird?