Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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/

like image 963
PRACHI VAKHARIA Avatar asked Nov 22 '12 05:11

PRACHI VAKHARIA


3 Answers

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.

like image 167
RocketDonkey Avatar answered Oct 20 '22 06:10

RocketDonkey


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” - “#”).

like image 32
Aesthete Avatar answered Oct 20 '22 04:10

Aesthete


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.

like image 1
Shashank Shekhar Avatar answered Oct 20 '22 05:10

Shashank Shekhar