2013-04-03 15 views
11

dopo runing questo codice, ho trovato errore di importazione: -pitone errore di importazione "No module named 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() 

come utilizzare google.apengine.ext

+0

Come l'hai installato? Controlla che sia sul tuo PYTHONPATH. – StoryTeller

+0

Se si sta tentando di eseguirlo in ambiente Python interattivo, sarà necessario modificare sys.path come indicato nei commenti seguenti. Se si prevede di pubblicare l'applicazione Web, è necessario eseguire l'app utilizzando dev_appserver.py. Il comando sarebbe /platform/google_appengine/dev_appserver.py app.yaml –

+0

Non so perché hai rimosso la mia risposta. Ho avuto esattamente lo stesso errore e il file google.py ha causato questo problema. Quindi per me è la risposta. Può essere non è la risposta al tuo caso esatto, ma era la risposta al mio caso. Inoltre ho avuto assolutamente lo stesso messaggio di errore: "errore di importazione python" Nessun modulo denominato appengine.ext ", quindi per favore restituire la risposta indietro.rispetti. – makkasi

risposta

9

Sembra che l'App Engine SDK non è installato, o almeno il runtime di Python non riesce a trovarlo.

leggere e seguire le istruzioni qui: https://cloud.google.com/appengine/downloads#Google_App_Engine_SDK_for_Python

Ti dicono, come installare App Engine SDK per Python.

+7

Ehi, ho seguito le istruzioni sul link specificato, ancora l'errore è lì –

+2

@NamitaMaharanwar Ho eseguito il seguente comando tramite Terminale (sto usando Mac): 'export PYTHONPATH =" $ PYTHONPATH:/usr/local/google_appengine:/usr/local/google_appengine/lib /:/usr/local/google_appengine/lib/yaml/"'. È necessario configurare i percorsi delle librerie –

+0

Sì, esattamente. L'impostazione di PYTHONPATH mancava nei passaggi che ho seguito. Fatto. –

5

Prova:

import google 
print google.__path__ 

per vedere che cosa esattamente si sta importando.

+1

>>> import google Traceback (ultima chiamata ultima): File "", riga 1, in ImportError: No module named google >>> Google Print .__ path__ Traceback (chiamata più recente scorso): file "", linea 1, in NameError: nome 'google' non è definito – 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'] 

questo risolve i problemi per me

+0

Dove si fa metti questo codice esattamente? È nel file 'appengine_config.py' o altrove? – Y2H

+0

Questo codice deve essere inserito all'inizio del metodo di esecuzione principale, sta aggiungendo il riferimento al pacchetto GAE. Questo è anche un vecchio codice, le cose sono cambiate dall'ultima volta che l'ho scritto. – varun

1

Ho avuto questo stesso problema perché ho PIP installato gcloud prima di scaricare e installare l'SDK. L'installazione di pip ha creato un pacchetto python google che non conteneva il sottomodulo appengine (che si trova nella cartella SDK). Ho disinstallato gcloud e pacchetti correlati. Quindi, solo pip ha installato google-cloud-bigquery, che è l'unico pacchetto di cui avevo bisogno da gcloud. Adesso funziona tutto bene.

0

controlla se hai specificato un file google.py :) nello stesso pacchetto, perché questo può rendere invisibile l'importazione di google.appengine.ext. Ho avuto lo stesso errore:

python import error “No module named appengine.ext” 

e la cancellazione del file ha risolto il problema.

+2

Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti da un autore, lascia un commento sotto il loro post. - [Dalla recensione] (/ recensione/post di bassa qualità/16810750) –