Как перенести приложение app.yaml на 2.7?
Я переношу приложение 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
Можете ли вы рассказать мне, как разрешить ошибку?
Ответы
Ответ 1
Проверяя исходный код, вам кажется, что вам нужно определить путь ваших обработчиков без косой черты:
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
в корень вашего проекта и соответствующим образом измените путь обработчика.
Ответ 2
Изменить:
- url: /mapreduce(/.*)?
script: mapreduce/main.application
Кому:
- url: /mapreduce(/.*)?
script: mapreduce.main.application
Вам также может потребоваться добавить __ init __. py в папку 'mapreduce', если она там уже не существует. Это заставит python интерпретировать папку как модуль.