谷歌应用引擎 |蟒蛇 |应用程序.YAML
Posted
技术标签:
【中文标题】谷歌应用引擎 |蟒蛇 |应用程序.YAML【英文标题】:Google App Engine | Python | APP.YAML 【发布时间】:2012-11-10 11:28:40 【问题描述】:我是 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
Google App Engine 在使用 Python 2.7.3 时出现以下错误
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/
【问题讨论】:
【参考方案1】:在配置app.yaml
时,您需要用空格将所有参数与其值分开(因此application:web2py
应该是application: web2py
等)。尝试在冒号后面加一个空格(特别是在这个后面:url:/(?P<a>.+?)/static/(?P<b>.+)
),看看是否能解决错误。
【讨论】:
谢谢你,亲爱的火箭驴!我尝试了您的建议并更新了文件,但仍然出现上述错误。 PS:你有一个非常有趣的名字。我试图想象这一点。 ;-) @zZz 没问题 - 你还会遇到同样的错误吗?将您的 yaml 粘贴到您链接的解析器中似乎可以正常工作,因此很乐意在必要时帮助进一步调试:) 亲爱的 RocketDonkey,感谢您的帮助。我仍在尝试 GAE 和 Python 框架,我一定会及时通知你事情的进展和发展。 @zZz 祝一切顺利!你发现这个错误了吗? @zZz 很高兴听到:) 此外,如果这些答案中的任何一个有帮助(因为它们基本相同),您可以通过单击答案分数下方的复选标记来接受它们。然后你可以在新问题出现时提出新问题并获得各种新答案:)【参考方案2】:这是您的 YAML
语法的问题。如果您对语法感到困惑,you can find the spec here.。
来自第 2.1 节 - 集合:
YAML 的块集合使用缩进来表示作用域,并且每个条目都在自己的行开始。块序列用破折号和空格(“-”)表示每个条目。 映射使用冒号和空格 (“: ”) 来标记每个键:值对。 注释以 octothorpe(也称为“hash”、“sharp”、“pound”或“number”开头符号” - “#”)。
【讨论】:
谢谢你,亲爱的美学家!我尝试了 RocketDonkey 上面给出的建议,并更新了文件,但仍然出现上面给出的错误。我参考了你在那个链接上提供的信息,如果我能学到所有这些,我就不会是一个对间距有这些愚蠢怀疑的新手!!! ;-)【参考方案3】:尝试删除:
之后的所有空格
这对我有用,尽管我的app.yaml
中还有一些我尚未更正的其他错误。
【讨论】:
【参考方案4】:我不确定 Google GAE 使用什么来解释 YAML 文件,但对于 PyYAML,该文件是不可接受的,因为 static_files
的值中有 \
。
这也恰好是文件的第 9 行(省略空行)。所以我会从逃避这些价值观开始。
请注意,http://yaml-online-parser.appspot.com/ 现在只是解析您的示例,但在将数据从 textarea 传递到 PyYAML 之前,它似乎默默地将 \1
转换为 '\2'。
【讨论】:
以上是关于谷歌应用引擎 |蟒蛇 |应用程序.YAML的主要内容,如果未能解决你的问题,请参考以下文章
“network: session_affinity:true” app.yaml 文件的属性没有反映在谷歌应用引擎中
GCP kms加密env var并通过cloudbuild.yaml将加密密钥传递给谷歌应用引擎