Как перенести мой app.yaml в 2.7? - PullRequest
10 голосов
/ 30 октября 2011

Я перевожу мое приложение gae на python 2.7.Это мой новый app.yaml:

application: webfaze
version: main
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /mapreduce(/.*)?
  script: mapreduce/main.application

- url: /(.*\.(html|css|js|gif|jpg|png|ico|swf))
  static_files: static/\1
  upload: static/.*
  expiration: "1d"

- url: .*
  script: main.application

- url: /task/.*
  script: main.application
  login: admin

Но я получаю это сообщение об ошибке:

Error parsing yaml file:
Invalid object:
threadsafe cannot be enabled with CGI handler: mapreduce/main.application
  in "webfaze/app.yaml", line 22, column 1

Можете ли вы сказать мне, как устранить ошибку?

Ответы [ 2 ]

7 голосов
/ 16 февраля 2012

Изменение:

- url: /mapreduce(/.*)?
  script: mapreduce/main.application

Кому:

- url: /mapreduce(/.*)?
  script: mapreduce.main.application

Вам также может понадобиться добавить __ init__.py в папку 'mapreduce', если там ее еще нет.Это заставит питона интерпретировать папку как модуль.

7 голосов
/ 30 октября 2011

Проверяя исходный код , похоже, что вам нужно определить путь к вашим обработчикам без косой черты:

   if (handler.script and (handler.script.endswith('.py') or 
       '/' in handler.script)):
       raise appinfo_errors.ThreadsafeWithCgiHandler(
                    'threadsafe cannot be enabled with CGI handler: %s' %
                    handler.script)

Переместите application.py в корень вашего проекта и измените путь обработчика соответственно.

...