6

Sono un principiante di Google App Engine, così come lo sviluppo web in Python. Dopo aver creato una piccola app basata su Python, ho cercato negli ultimi 6 giorni di caricarla su GAE. Il file "app.yaml" qui sotto fornisce l'errore fornito successivamente.Google App Engine Python | APP.YAML

app.yaml (AGGIORNATO)

application: web2py 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: false 

default_expiration: "24h" 

handlers: 
- url: /(?P<a>.+?)/static/(?P<b>.+) 
    static_files: applications/\1/static/\2 
    upload: applications/(.+?)/static/(.+) 
    secure: optional 

- url: /favicon.ico 
    static_files: applications/welcome/static/favicon.ico 
    upload: applications/welcome/static/favicon.ico 

- url: /robots.txt 
    static_files: applications/welcome/static/robots.txt 
    upload: applications/welcome/static/robots.txt 

- url: .* 
# script: gaehandler.py   # CGI 
# script: web2py.app # ? 
    script: gaehandler.wsgiapp # WSGI (Python 2.7 only) 
    secure: optional 

admin_console: 
    pages: 
    - name: Appstats 
    url: /_ah/stats 

skip_files: | 
^(.*/)?(
(app\.yaml)| 
(app\.yml)| 
(index\.yaml)| 
(index\.yml)| 
(#.*#)| 
(.*~)| 
(.*\.py[co])| 
(.*/RCS/.*)| 
(\..*)| 
(applications/(admin|examples)/.*)| 
((admin|examples)\.(w2p|tar))| 
(applications/.*?/(cron|databases|errors|cache|sessions)/.*)| 
((logs|scripts)/.*)| 
(anyserver\.py)| 
(web2py\.py)| 
((cgi|fcgi|modpython|wsgi)handler\.py)| 
(epydoc\.(conf|css))| 
(httpserver\.log)| 
(logging\.example\.conf)| 
(route[rs]\.example\.py)| 
(setup_(app|exe)\.py)| 
(splashlogo\.gif)| 
(parameters_\d+\.py)| 
(options_std.py)| 
(gluon/tests/.*)| 
(gluon/(rocket|winservice)\.py)| 
(contrib/(gateways|markdown|memcache|pymysql)/.*)| 
(contrib/(populate|taskbar_widget)\.py)| 
(google_appengine/.*)| 
(.*\.(bak|orig))| 
)$ 

builtins: 
- remote_api: on 
- appstats: on 
- admin_redirect: on 
- deferred: on 

Google App Engine durante l'utilizzo di Python 2.7.3 dà il seguente errore

YAML ERRORE sul GAE

*** Running dev_appserver with the following flags: 
    --admin_console_server= --port=8080 --use_sqlite 
Python command: /usr/local/bin/python2.7 
ERROR 2012-11-22 05:24:13,142 dev_appserver_main.py:626] Fatal error when loading application configuration: 
mapping values are not allowed here 
    in "/Applications/+++WWW+++/GAE/gae3web2py/app.yaml", line 9, column 9 

Se qualcuno può gentilmente aiutarmi, lo sarò molto grato, specialmente in questo giorno di "Thanksgiving" americano! ;-)


aggiornato

Il file "app.yaml" è stata aggiornata con la spaziatura come suggerito. Ma continua a dare lo stesso errore.

ho anche provato qui, dove si dà gli stessi errori: Link>http://yaml-online-parser.appspot.com/

risposta

1

Durante la configurazione app.yaml, è necessario separare tutti i parametri dai loro valori con spazi (in modo application:web2py dovrebbe essere application: web2py, etc.). Prova a lasciare uno spazio dopo i due punti (in particolare dopo questo: url:/(?P<a>.+?)/static/(?P<b>.+)) e verifica se questo corregge l'errore.

+0

Grazie, caro RocketDonkey! Ho provato i vostri suggerimenti e aggiornato il file, ma ancora gli errori come indicato sopra. PS: hai un nome molto divertente. Sto cercando di immaginarlo. ;-) –

+1

@zZz Nessun problema - ricevi ancora lo stesso errore? Incollare il tuo yaml nel parser che hai collegato sembra funzionare bene, quindi sei felice di aiutarti a eseguire il debug ulteriormente se necessario :) – RocketDonkey

+0

Caro RocketDonkey, Grazie per il gentile aiuto. Sto ancora provando il GAE e il Framework Python, e ti terrò sicuramente informato su come le cose procedono e si sviluppano. –

1

È un problema con la sintassi YAML. Se si è mai confusi sulla sintassi, you can find the spec here..

Dalla sezione 2.1 - Collezioni:

collezioni blocco di YAML utilizzano rientro per portata e iniziano ogni voce su una riga. Le sequenze di blocchi indicano ciascuna voce con un trattino e uno spazio ("-"). I mapping utilizzano due punti e uno spazio (":") per contrassegnare ogni chiave: coppia di valori. I commenti iniziano con un octothorpe (chiamato anche "hash", "sharp", "pound" o "number sign" - "#").

+0

Grazie, caro Esthete! Ho provato i suggerimenti di cui sopra RocketDonkey, e aggiornato il file, ma ancora gli errori come indicato sopra. Mi sono riferito alle informazioni che hai dato a quel link, e se posso imparare tutto questo, non sarei stato un principiante con questi stupidi dubbi su Spacing !!! ;-) –

1

provare a rimuovere tutto lo spazio riuscendo dopo :
Questo ha funzionato per me, anche se ci sono stati alcuni altri bug nel mio app.yaml che non ho ancora corretti.

0

Non sono sicuro di ciò che Google GAE utilizza per interpretare il file YAML, ma per PyYAML quel file non è accettabile a causa dello \ nel valore per static_files.

Questa è anche la nona riga del file (tralasciando le righe vuote). Quindi vorrei iniziare sfuggendo a quei valori.

Si prega di notare che http://yaml-online-parser.appspot.com/ ora analizza solo il tuo exmaple, ma sembra silenziosamente convertire lo \1 in "\ 2" prima di passare i dati dalla textarea a PyYAML.