Подтвердить что ты не робот

Ошибка Python 2.7 в Google App Engine - Threadsafe нельзя включить с помощью CGI-обработчика

Я попытался перейти на Python 2.7 из Python 2.5, но каждый раз получаю ту же ошибку.

Я сделал очень простой тест в Python 2.5, работающий с файлом app.yaml и всего одним script main.py, и он отлично работает. script он просто тип Hello World, чтобы проверить, что все работает нормально.

app.yaml

application: sparepartsfinder
version: 1
runtime: python
api_version: 1


handlers:

- url: /blog
  script: main.py

- url: /blog/new_entry
  script: main.py 

main.py

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class MainPage(webapp.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write('Hello, webapp World!')

application = webapp.WSGIApplication(
                                     [('/', MainPage),
                                      ('/blog', MainPage),
                                      ('/blog/new_entry',MainPage),
                                      ('/blog/archive/.*',MainPage)],
                                     debug=True)

def main():
    run_wsgi_app(application)

if __name__ == "__main__":
    main()

Когда я перехожу на Python 2.7, я следую документам на Google App Engine в письмо, вносящее изменения в app.yaml и main.py script.

app.yaml

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


handlers:

- url: /blog
  script: main.py

- url: /blog/new_entry
  script: main.py 

- url: /blog/archive/.*
  script: main.py


- url: .*
  script: main.py

main.py

import webapp2

class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.out.write('Hello prueba!')

app = webapp2.WSGIApplication([('/', MainPage),
                               ('/blog', MainPage),
                               ('/blog/new_entry',MainPage),
                               ('/blog/archive/.*',MainPage)],
                              debug=True)

К сожалению, он не работает ни локально, ни когда я пытаюсь загрузить новую конфигурацию в Google App Engine. (Я всегда получаю ту же ошибку).

Я могу понять проблему на моей машине (у меня есть оба Python 2.5 и 2.7) в Windows XP, но не при загрузке.

Это ошибка:

2012-05-04 13:02:07 Запуск команды: "[u'C:\Python25\python2.5.exe", '-u', 'C:\Archivos > de programa\Google\google_appengine\appcfg.py ',' --no_cookies ', u'[email protected]', '--passin', 'update', 'C:\Documents and Settings\SSanjuan\Mis documentos\Dropbox\Dropbox\Python\Spareparts'] "Ошибка анализа файла yaml: Недопустимый объект: Невозможно включить threadafe с помощью обработчика CGI: main.py   в" C:\Documents and Settings\SSanjuan\Mis documentos\Dropbox\Dropbox\Python\SpareParts\app.yaml", строка 27, столбец 1 2012-05-04 13:02:31 (Процесс завершен с кодом 1)

4b9b3361

Ответ 1

Используйте main.application вместо main.py в вашем приложении app.yaml. Вам нужно первое, чтобы установить threadsafe в true.

Ответ 2

У меня была такая же проблема, и вот ответ.

Для среды исполнения Python 2.5 вы указываете путь к файлу - то есть script: myfolder/myfile.py.

Для среды выполнения Python 2.7 вы указываете объект. Итак, предположим, что myfile.py содержит подходящее WSGI-приложение "приложение", оно указано как script: myfolder.myfile.app.