6

我是Google App Engine的初学者,也是Python的网络开发人员。 在制作了一个基于Python的小应用之后,我一直试图在过去的6天内将它上传到GAE。 下面的“app.yaml”文件给出了之后给出的错误。Google App Engine | Python | APP.YAML

的app.yaml(修订版)

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 

谷歌应用程序引擎,而使用Python 2.7.3提供了以下错误

YAML错误在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 

如果有人能够帮助我,我会成为的非常感谢,特别是在美国“感恩节”的这一天! ;-)


更新

的 “app.yaml的” 文件与更新间隔的建议。但它仍然给出了同样的错误。

我甚至试过在这里,它给出了同样的错误: Link>http://yaml-online-parser.appspot.com/

回答

1

在配置您的app.yaml,你需要的所有参数从它们的值用空格分隔(所以application:web2py应该application: web2py等。 )。尝试在冒号后面留下空格(具体在此之后:url:/(?P<a>.+?)/static/(?P<b>.+)),然后查看是否修复了错误。

+0

谢谢,亲爱的RocketDonkey! 我尝试了你的建议并更新了文件,但仍然是上面给出的错误。 PS:你有一个非常有趣的名字。我试图想象这一点。 ;-) –

+1

@zZz没问题 - 你还会得到同样的错误吗?将你的yaml粘贴到解析器链接似乎工作正常,很高兴帮助进一步调试,如果有必要:) – RocketDonkey

+0

亲爱的RocketDonkey, 谢谢你的帮助。我仍然在尝试GAE和Python框架,并且我一定会告诉你如何进行和发展。 –

1

这是您的YAML语法的问题。如果您对语法感到困惑,请拨打you can find the spec here.

从2.1节 - 类别:

YAML的块集合使用缩进范围,并开始对自己的行中的每个条目。块序列用虚线和空格(“ - ”)表示每个条目。 映射使用冒号和空格(“:”)标记每个键:值对。评论以octothorpe(也称为“hash”,“sharp”,“pound”或“number sign” - “#”)开头。

+0

谢谢,亲爱的Esthete!我尝试了RocketDonkey上面给出的建议,并更新了文件,但仍然是上面给出的错误。 我提到了你在那个链接上给出的信息,如果我能够学习所有这些,我就不会成为这些对间距的愚蠢怀疑的新手! ;-) –

1

尝试后:
删除所有后面的间隔这个工作对我来说,虽然有在我app.yaml一些其他错误,我还没有纠正。

0

我不确定Google GAE使用什么来解释YAML文件,但是对于PyYAML,由于static_files的值为\,因此该文件不可接受。

这也恰好是文件的第9行(不包括空行)。所以我会开始逃避这些价值观。

请注意,http://yaml-online-parser.appspot.com/现在只是解析您的exmaple,但它似乎默默地将\1转换为'\ 2',然后将数据从textarea传递到PyYAML。