Учебник Google python 2.7 не запускается

Я следую учебнику на https://developers.google.com/appengine/docs/python/gettingstartedpython27/introduction

my app.yaml:

application: myapp
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /
  script: helloworld.application

и helloworld.py:

import webapp2


class MainPage(webapp2.RequestHandler):

    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write('Hi')


application = webapp2.WSGIApplication([
    ('/', MainPage),
], debug=True)

Выход журнала:

*** Running dev_appserver with the following flags:
    --skip_sdk_update_check=yes --port=10090 --admin_port=8001
Python command: /usr/bin/python2.7
Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/dev_appserver.py", line 182, in <module>
    _run_file(__file__, globals())
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/dev_appserver.py", line 178, in _run_file
    execfile(script_path, globals_)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 695, in <module>
    main()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 688, in main
    dev_server.start(options)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 525, in start
    options.yaml_files)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/application_configuration.py", line 556, in __init__
    server_configuration = ServerConfiguration(yaml_path)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/application_configuration.py", line 82, in __init__
    self._yaml_path)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/application_configuration.py", line 272, in _parse_configuration
    return appinfo_includes.ParseAndReturnIncludePaths(f)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/appinfo_includes.py", line 63, in ParseAndReturnIncludePaths
    appyaml = appinfo.LoadSingleAppInfo(appinfo_file)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/appinfo.py", line 1715, in LoadSingleAppInfo
    listener.Parse(app_info)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/yaml_listener.py", line 226, in Parse
    self._HandleEvents(self._GenerateEventParameters(stream, loader_class))
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/yaml_listener.py", line 177, in _HandleEvents
    raise yaml_errors.EventError(e, event_object)
google.appengine.api.yaml_errors.EventError

Я работаю на macbook pro, используя python 2.7 Я использую средство запуска приложений. Любые идеи?

Ответ 1

У меня тоже возникла такая же проблема. Это связано с кодировкой файла при копировании непосредственно с сайта. Избегайте этого и убедитесь, что ваш файл имеет правильную кодировку yaml. Вот пример, чтобы начать работу с файлом app.yaml

application: your-app-id
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: helloworld.application

Ответ 2

В моем случае проблема заключалась в уровне отступов строки "script".

Это было похоже:

handlers:
 - url: /.*
 script: helloworld.php

но должен выглядеть следующим образом:

handlers:
 - url: /.*
   script: helloworld.php

Ответ 3

Я вырезал и вставлял app.yaml из Chrome в gnome-terminal и получил ту же ошибку. В конце концов я открыл app.yaml в vi и обнаружил, что он содержит маркер направления текста UTF. Как только я удалил это, все приступило к работе.

Мораль истории: если вы видите эту ошибку, проверьте свой app.yaml на предмет плохой разметки, плохих персонажей и что-то еще плохое. (Но не DOS-новые строки - разработчик приложений работает с ними.)

Ответ 4

Попробуйте удалить специальный символ до строки приложения в app.yaml. Кажется, это не так, но просто переместите курсор на позицию до того, как оно будет нажато, чтобы удалить его.

Ответ 5

Чтобы завершить ответ @Fernando Basso, правильное намерение в строке script должно быть двух пробелов, но не вкладки, поскольку оно будет считаться символом \t, который также будет генерировать ошибку.