2013-07-07 14 views
10

Sto seguendo il tutorial in https://developers.google.com/appengine/docs/python/gettingstartedpython27/introductionGoogle App Engine python 2.7 tutorial non verrà eseguito

mia app.yaml è:

application: myapp 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: true 

handlers: 
- url:/
    script: helloworld.application 

e helloworld.py è:

import webapp2 


class MainPage(webapp2.RequestHandler): 

    def get(self): 
     self.response.headers['Content-Type'] = 'text/plain' 
     self.response.write('Hi') 


application = webapp2.WSGIApplication([ 
    ('/', MainPage), 
], debug=True) 

L'output del registro è:

*** Running dev_appserver with the following flags: 
    --skip_sdk_update_check=yes --port=10090 --admin_port=8001 
Python command: /usr/bin/python2.7 
Traceback (most recent call last): 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/dev_appserver.py", line 182, in <module> 
    _run_file(__file__, globals()) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/dev_appserver.py", line 178, in _run_file 
    execfile(script_path, globals_) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 695, in <module> 
    main() 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 688, in main 
    dev_server.start(options) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 525, in start 
    options.yaml_files) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/application_configuration.py", line 556, in __init__ 
    server_configuration = ServerConfiguration(yaml_path) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/application_configuration.py", line 82, in __init__ 
    self._yaml_path) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/application_configuration.py", line 272, in _parse_configuration 
    return appinfo_includes.ParseAndReturnIncludePaths(f) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/appinfo_includes.py", line 63, in ParseAndReturnIncludePaths 
    appyaml = appinfo.LoadSingleAppInfo(appinfo_file) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/appinfo.py", line 1715, in LoadSingleAppInfo 
    listener.Parse(app_info) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/yaml_listener.py", line 226, in Parse 
    self._HandleEvents(self._GenerateEventParameters(stream, loader_class)) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/yaml_listener.py", line 177, in _HandleEvents 
    raise yaml_errors.EventError(e, event_object) 
google.appengine.api.yaml_errors.EventError 

Sono in esecuzione su un MacBook Pro, utilizzando python 2.7 Sto utilizzando l'avvio del motore di app. Qualche idea?

+0

La tua eccezione è tagliata? Penso che ci dovrebbe essere un messaggio di errore che segue il nome dell'eccezione "EventError' sull'ultima riga. –

+0

No non è tagliato, questo è tutto quello che dice – user2558615

+0

Dopo aver salvato app.yaml con wrangler di testo sono riuscito a ottenere un errore più informativo. 'google.appengine.api.yaml_errors.EventError: tipo di gestore url sconosciuto. in "/ Utenti/Evan/helloworld/app.yaml ", riga 9, colonna 1 ' – user2558615

risposta

10

Ho avuto lo stesso problema anche io. Ha qualcosa a che fare con la codifica dei file quando si copia direttamente dal sito. Evita questo e assicurati che il tuo file abbia la giusta codifica yaml. Ecco un esempio per iniziare per il file app.yaml

application: your-app-id 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: true 

handlers: 
- url: /.* 
    script: helloworld.application 
+0

Sì, questo era il problema, alla fine l'ho capito, ma è stata una sfortunata perdita di tempo Grazie – user2558615

+0

Molto utile Grazie !!! – jap1968

4

ho tagliato e incollato app.yaml da Chrome in gnome-terminal, e ottenuto lo stesso errore. Alla fine ho aperto app.yaml in vi e ho scoperto che conteneva un indicatore di direzione del testo UTF. Non appena l'ho rimosso, tutto ha iniziato a funzionare.

Morale della trama: se vedi questo errore, controlla la tua app.yaml per markup errato, caratteri non validi e altro. (Non newline DOS però - l'appserver dev ne affronta.)

1

Provare a eliminare il carattere speciale prima della riga dell'applicazione in app.yaml. Sembra non esserci ma basta spostare il cursore sulla posizione prima di un, quindi premere backspace per eliminarlo.

8

Nel mio caso il problema era il livello di indentazione della riga "script".

E 'stato come:

handlers: 
- url: /.* 
script: helloworld.php 

ma dovrebbe essere come questo:

handlers: 
- url: /.* 
    script: helloworld.php 
+0

arrgh pitone... –

0

Per completare sulla risposta @Fernando Basso, l'intento corretta sulla riga dello script dovrebbe essere due spazi, ma non una scheda che verrebbe letta come un carattere \ t che genererebbe anche un errore.

Problemi correlati