6

我是 Google App Engine 以及 Python 网络开发的初学者。在制作了一个基于 Python 的小型应用程序后,过去 6 天我一直在尝试将其上传到 GAE。下面的“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 时的 Google App Engine 出现以下错误

GAE 上的 YAML 错误

*** 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/

4

4 回答 4

1

这是您的YAML语法问题。如果您对语法感到困惑,可以在此处找到规范。.

从第 2.1 节 - 集合:

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

于 2012-11-22T06:02:17.653 回答
1

在配置您的 时app.yaml,您需要将所有参数与其值用空格分隔(application:web2py应该如此application: web2py,等等)。尝试在冒号后面加一个空格(特别是在这个后面:)url:/(?P<a>.+?)/static/(?P<b>.+),看看是否能解决错误。

于 2012-11-22T05:38:00.397 回答
1

尝试在这对我有用之后删除所有后续空格,尽管我还没有纠正:
一些其他错误。app.yaml

于 2013-01-12T21:20:27.517 回答
0

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

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

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

于 2014-11-24T12:14:04.820 回答