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.
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
*** 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" ! ;-)
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.