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。