简体   繁体   中英

Google App Engine | Python | APP.YAML

I am a beginner to Google App Engine, as well as web-development in Python. After making a small Python based app, I have been trying for the past 6 days to get it uploaded on GAE. The "app.yaml" file below gives the error given after that.

APP.YAML (UPDATED)

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 while using Python 2.7.3 gives the following Error

YAML ERROR on 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

If anyone can kindly help me, I shall be very thankful, especially on this day of American "Thanksgiving" ! ;-)


UPDATED

The "app.yaml" file was updated with the spacing as suggested. But it still gives that same error.

I even tried it here, where it gives the same errors: Link > http://yaml-online-parser.appspot.com/

When configuring your app.yaml , you need to separate all parameters from their values with spaces (so application:web2py should be application: web2py , etc.). Try dropping a space in after the colons (specifically after this one: url:/(?P<a>.+?)/static/(?P<b>.+) ) and see if that fixes the error.

It's an issue with your YAML syntax. If you're ever confused about the syntax, you can find the spec here. .

From section 2.1 - Collections:

YAML's block collections use indentation for scope and begin each entry on its own line. Block sequences indicate each entry with a dash and space ( “- ”). Mappings use a colon and space (“: ”) to mark each key: value pair. Comments begin with an octothorpe (also called a “hash”, “sharp”, “pound”, or “number sign” - “#”).

Try removing all the succeeding space after :
This worked for me, although there were some other bugs in my app.yaml that I have not yet corrected.

I'm not sure what Google GAE uses to interpret the YAML file, but to PyYAML that file is not acceptable because of the \\ in the value for static_files .

This also happens to be the 9th line of the file (leaving out empty lines). So I would start by escape those values.

Please note that http://yaml-online-parser.appspot.com/ now just parses your exmaple, but it silently seems to convert the \\1 to '\\2' before passing the data from the textarea to PyYAML.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM