2013-04-03 8 views
11

nach diesem Code runing, ich Importfehler gefunden: -Python Importfehler "Kein Modul namens appengine.ext"

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 __name__ == "__main__": 
    main() 

wie google.apengine.ext verwendet

+0

Wie haben Sie es installiert? Überprüfen Sie, dass es auf Ihrem PYTHONPATH ist. – StoryTeller

+0

Wenn Sie versuchen, es in einer interaktiven Python-Umgebung auszuführen, müssen Sie sys.path wie in den Kommentaren unten beschrieben ändern. Wenn Sie die Webanwendung bereitstellen möchten, sollten Sie Ihre App mit dev_appserver.py ausführen. Befehl wäre /platform/google_appengine/dev_appserver.py app.yaml –

+0

Ich weiß nicht, warum Sie meine Antwort entfernt haben. Ich hatte genau den gleichen Fehler und die Datei google.py verursachte dieses Problem. Also für mich ist die Antwort. Mag sein, ist keine Antwort auf Ihren genauen Fall, aber es war die Antwort auf meinen Fall. Auch ich hatte absolut die gleiche Nachricht wie Fehler: "Python-Import-Fehler" Kein Modul namens appengine.ext ", also bitte meine Antwort zurück. Grüße. – makkasi

Antwort

9

Es sieht aus wie die App Engine SDK ist nicht installiert, oder zumindest die Python-Laufzeitumgebung kann es nicht finden.

Lesen und folgen Sie den Anweisungen hier: https://cloud.google.com/appengine/downloads#Google_App_Engine_SDK_for_Python

Sie sagen Ihnen, wie App Engine SDK für Python zu installieren.

+7

Hey, ich folgte den Anweisungen auf den Link, den Sie angegeben, immer noch der Fehler ist da –

+2

@NamitaMaharanwar Ich habe den folgenden Befehl über Terminal ausgeführt (ich benutze Mac): 'export PYTHONPATH =" $ PYTHONPATH:/usr/lokal/google_appengine:/usr/local/google_appengine/lib /:/usr/local/google_appengine/lib/yaml/"'. Sie müssen die Pfade zu den Bibliotheken konfigurieren. –

+0

Ja, genau. Einstellung PYTHONPATH fehlte in Schritten, die ich befolgte. Fertig. –

5

Versuchen:

import google 
print google.__path__ 

, um zu sehen, was genau Sie importieren.

+1

>>> google importieren Traceback (letzter Anruf zuletzt): Datei "", Zeile 1, in Import: Kein Modul mit dem Namen google >>> print google .__ path__ Traceback (jüngste Aufforderung zuletzt): File "" Linie 1 in Nameerror: Name 'Google' ist nicht definiert – TSR

5
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'] 

dies löst die Probleme für mich

+0

Ort, wo ich diesen Code genau eingeben? Ist es in der 'appengine_config.py' Datei oder woanders? – Y2H

+0

Dieser Code wird am Anfang der Hauptausführungsmethode platziert, er fügt einen Verweis auf das GAE-Paket hinzu. Dies ist auch ein alter Code, die Dinge haben sich seit dem letzten Schreiben geändert. – varun

1

ich das gleiche Problem hatte, weil ich gcloud vor dem Download und der Installation des SDK installiert pip. Die pip-Installation hat ein Python-Paket google erstellt, das das appengine-Submodul (das sich im SDK-Ordner befindet) nicht enthält. Ich habe die gcloud und die zugehörigen Pakete deinstalliert. Dann habe ich nur die google-cloud-bigquery installiert, die das einzige Paket ist, das ich von gcloud benötigte. Alles funktioniert jetzt gut.

0

Überprüfen Sie, ob Sie eine Datei google.py :) im selben Paket benannt haben, da dies den Import von google.appengine.ext überschatten kann. Ich hatte den gleichen Fehler:

python import error “No module named appengine.ext” 

und Löschen der Datei löste das Problem.

+2

Dies liefert keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag. - [Aus Bewertung] (/ review/low-quality-posts/16810750) –