Google App Engine | Python | APP.YAML

Я новичок в 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 выдает следующую ошибку

ОШИБКА 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/


person PRACHI VAKHARIA    schedule 22.11.2012    source источник


Ответы (4)


При настройке app.yaml вам необходимо отделить все параметры от их значений пробелами (поэтому application:web2py должно быть application: web2py и т. Д.). Попробуйте вставить пробел после двоеточия (особенно после этого: url:/(?P<a>.+?)/static/(?P<b>.+)) и посмотрите, устранит ли это ошибку.

person RocketDonkey    schedule 22.11.2012
comment
Спасибо, дорогой RocketDonkey! Я попробовал ваши предложения и обновил файл, но все же ошибки, указанные выше. PS: У вас очень забавное имя. Я пытаюсь это представить. ;-) - person PRACHI VAKHARIA; 22.11.2012
comment
@zZz Нет проблем - вы все еще получаете ту же ошибку? Вставка вашего yaml в парсер, который вы связали, кажется, работает нормально, поэтому при необходимости буду рад помочь в дальнейшей отладке :) - person RocketDonkey; 22.11.2012
comment
Уважаемый RocketDonkey, Спасибо за любезную помощь. Я все еще пробую GAE и Python Framework, и я обязательно буду держать вас в курсе о том, как все идет и развивается. - person PRACHI VAKHARIA; 22.11.2012
comment
@zZz Ну удачи во всем! Вы выяснили эту ошибку? - person RocketDonkey; 22.11.2012
comment
Ошибка исчезла, но написанное мною простое приложение все еще не загружается в GAE. Я снова и снова следовал всем инструкциям в книге и на веб-сайте web2py. И в инструкциях вроде как не хватает многого. Кажется, автор (создатель) написал это, предполагая многое, но я еще не знаю, что это такое. - person PRACHI VAKHARIA; 22.11.2012
comment
@zZz Где вы сталкиваетесь с ошибками? Я уверен, что мы сможем с ними разобраться. - person RocketDonkey; 22.11.2012
comment
почему бы не начать с простого рабочего примера и добавить свои компоненты в app.yaml, пока он не сломается? code.google.com/p/google-app-engine-samples - person Paul Collingwood; 22.11.2012
comment
Согласитесь с @PaulC - эффективнее начинать с того, что работает, и смотреть, где это ломается. Что содержит ваш файл web2py? - person RocketDonkey; 22.11.2012
comment
Я буду держать вас в курсе по мере решения некоторых из этих проблем, и сейчас я пробую GAE с простым приложением без БД или чего-то еще. И теперь это работает. И я немедленно отправляю это, чтобы поделиться своей радостью, увидев, как это работает в GAE. Я расскажу, как я буду продолжать, и я расскажу, как проблемы были / решены. Ура! - person PRACHI VAKHARIA; 25.11.2012
comment
@zZz Приятно слышать :) Кроме того, если какой-либо из этих ответов помог (поскольку они в основном были одинаковыми), вы можете принять их, щелкнув галочку под оценкой ответа. Тогда вы сможете задавать новые вопросы по мере их возникновения и получать самые разные ответы :) - person RocketDonkey; 25.11.2012

Это проблема с синтаксисом YAML. Если вы когда-нибудь запутались в синтаксисе, вы можете найти здесь спецификацию. .

Из раздела 2.1 - Коллекции:

Коллекции блоков YAML используют отступ для области видимости и начинают каждую запись с отдельной строки. Последовательности блоков обозначают каждую запись тире и пробелом («-»). В сопоставлениях используется двоеточие и пробел («:») для обозначения каждой пары ключ: значение. Комментарии начинаются с восьмигранника (также называемого «решетка», «острый», «фунт» или «число». подписать" - "#").

person Aesthete    schedule 22.11.2012
comment
Спасибо, дорогой Эстет! Я попробовал предложения, данные выше RocketDonkey, и обновил файл, но все же ошибки, указанные выше. Я сослался на информацию, которую вы дали по этой ссылке, и если бы я смог узнать все это, я не был бы новичком с этими глупыми сомнениями по поводу Spacing !!! ;-) - person PRACHI VAKHARIA; 22.11.2012

Попробуйте удалить все последующие пробелы после :
Это сработало для меня, хотя в моем app.yaml были некоторые другие ошибки, которые я еще не исправил.

person Shashank Shekhar    schedule 12.01.2013

Я не уверен, что Google GAE использует для интерпретации файла YAML, но для PyYAML этот файл неприемлем из-за \ в значении static_files.

Это также 9-я строка файла (без пустых строк). Поэтому я бы начал с отказа от этих ценностей.

Обратите внимание, что http://yaml-online-parser.appspot.com/ теперь просто анализирует ваш пример, но он, кажется, молча преобразует \1 в '\ 2' перед передачей данных из текстового поля в PyYAML.

person Anthon    schedule 24.11.2014