2016-10-07 1 views
1

Ich habe an der Bereitstellung des Authenticating Users on App Engine Using Firebase Tutorials gearbeitet und kann dieses erfolgreich auf meinem lokalen Computer bereitstellen.Crypto.Util Importfehler in Firebase_helper.py bei der Bereitstellung in Google App Flexible Engine

Wie möchte ich einige Python-Module testen, die auf dem Standard-Google App Engine nicht laufen, habe ich versucht, jetzt in app.yaml

vm: true 

die über diese Einstellung dies auf die flexible Umgebung zu implementieren Frontend wird für die flexible App-Engine bereitgestellt, aber das Back-End gibt beim Import von firebase_helper.py einen Fehler aus. Genauer gesagt ist es auf dieser Linie Würgen:

from Crypto.Util import asn1 

Die rohe Stacktrace ist hier aufgelistet:

Traceback (most recent call last): 
    File "/home/vmagent/python_vm_runtime/google/appengine/ext/vmruntime/meta_app.py", line 550, in GetUserAppAndServe 
    app, mod_file = self.GetUserApp(script) 
    File "/home/vmagent/python_vm_runtime/google/appengine/ext/vmruntime/meta_app.py", line 411, in GetUserApp 
    app = _AppFrom27StyleScript(script) 
    File "/home/vmagent/python_vm_runtime/google/appengine/ext/vmruntime/meta_app.py", line 271, in _AppFrom27StyleScript 
    app, filename, err = wsgi.LoadObject(script) 
    File "/home/vmagent/python_vm_runtime/google/appengine/runtime/wsgi.py", line 85, in LoadObject 
    obj = __import__(path[0]) 
    File "/home/vmagent/app/main.py", line 22, in <module> 
    import firebase_helper 
    File "/home/vmagent/app/firebase_helper.py", line 20, in <module> 
    from Crypto.Util import asn1 
ImportError: No module named Crypto.Util 

Nun wird PyCrypto bereits im app.yaml enthalten:

libraries: 
- name: ssl 
    version: 2.7.11 
- name: pycrypto 
    version: 2.6.1 

I habe SSH'd in den Server und Crypto ist installiert. Ich kann es auch ohne Probleme in eine Python-Konsole auf der VM laden.

Eine Idee, warum ich diesen Fehler während der Bereitstellung bekomme?

Antwort

2

Gemäß der Google App engine documentation wird der Bibliotheksabschnitt von app.yaml nicht mehr in flexiblen VM unterstützt. Sie müssen Abhängigkeiten in requirements.txt deklarieren.

So müssen Sie die folgende Zeile in requirements.txt hinzuzufügen:

pycrypto==2.6.1 

Stellen Sie sicher, löschen Sie die libraries Direktive von Ihrem app.yaml

Stellen Sie sicher, Ihre Laufzeit ist auf runtime: python-compat.

Löschen Sie die Datei appengine_cfg.py, da das flexible vm automatisch alle Abhängigkeiten in requirements.txt installiert.

+0

Die Kompat-Laufzeit ist möglicherweise nicht notwendig, aber ansonsten perfekt. :) –

Verwandte Themen