nachdem ich diesen Code ausgeführt habe, habe ich einen Importfehler gefunden: -
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, webapp World!')
application = webapp.WSGIApplication([('/', MainPage)],debug=True)
def main():
run_wsgi_app(application)
if __== "__main__":
main()
so verwenden Sie google.apengine.ext
Offenbar ist das App Engine SDK nicht installiert oder die Python-Laufzeitumgebung kann es nicht finden.
lesen und befolgen Sie die Anweisungen hier: https://cloud.google.com/appengine/downloads#Google_App_Engine_SDK_for_Python
Sie erfahren, wie Sie das App Engine SDK für Python installieren.
import sys
sys.path.insert(1, '/Users/<username>/google-cloud-sdk/platform/google_appengine')
sys.path.insert(1, '/Users/<username>/google-cloud-sdk/platform/google_appengine/lib/yaml/lib')
sys.path.insert(1, 'lib')
if 'google' in sys.modules:
del sys.modules['google']
das löst die probleme für mich
Versuchen:
import google
print google.__path__
um zu sehen, was genau du importierst.
Ich hatte das gleiche Problem, weil ich vor dem Herunterladen und Installieren des SDK gcloud installiert habe. Bei der pip-Installation wurde ein Python-Paket google erstellt, das nicht das im Modul SDK enthaltene Appengine-Submodul enthielt. Ich habe die gcloud und die zugehörigen Pakete deinstalliert. Dann hat pip nur die google-cloud-bigquery installiert, die das einzige Paket ist, das ich von gcloud benötigte. Jetzt funktioniert alles gut.
Beim Aufrufen der Google Analytics-API mit AWS Lambda ist ein ähnlicher Fehler aufgetreten.
Problemumgehung von (Schweigi 1 ) hat mir geholfen.
import googleapiclient
from googleapiclient.discovery_cache.base import Cache
class MemoryCache(Cache):
_CACHE = {}
def get(self, url):
return MemoryCache._CACHE.get(url)
def set(self, url, content):
MemoryCache._CACHE[url] = content
Verwendungszweck:
service = googleapiclient.discovery.build("analyticsreporting", "v4", http=http, credentials=credentials,cache=MemoryCache())
Hoffe, dies hilft jemandem, der mit diesem Problem in AWS Lambda konfrontiert ist.
Erster möglicher Grund:
du installierst die python library nicht in google cloud sdk, also kannst du sie in cmd ausführen (als administrator):
gcloud components install app-engine-python
.
Zweiter möglicher Grund:
ihr IDE ist kein Erfolg in Google-Bibliotheken zu bekommen, sie existieren in:
C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine
oder in:
C:\Users\[your user]\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine
Unter dem angehängten Link erfahren Sie, wie Sie diese Bibliotheken zu IDE externen Bibliotheken hinzufügen: https://stackoverflow.com/a/24206781/8244338
prüfen Sie, ob Sie im selben Paket eine Datei google.py :) benannt haben, da dies den Import von google.appengine.ext spiegeln kann. Ich hatte den gleichen Fehler:
python import error “No module named appengine.ext”
und Löschen der Datei löste das Problem.