2012-07-20 83 views
4

我一直试图关注this turorial以便在应用程序上实现openID身份验证,但我完全丢失了。无论我尝试了什么,我一直得到这个错误:无法使用CGI处理程序启用线程安全

Fatal error when loading application configuration: 
Invalid object: 
threadsafe cannot be enabled with CGI handler: main.py 

有谁知道如何实现openID登录?

+0

http://stackoverflow.com/questions/10447879/error-python-2-7-on-google-app-engine-threadsafe-cannot-be-enabled-with-cgi-ha – 2013-04-09 19:22:27

回答

30

这与OpenID无关。

如果你在谷歌应用程序引擎使用新的并发请求(线程=真)模式与Python 2.7,你必须确保你指定一个WSGI应用(例如myapp.app),而不是CGI处理程序(例如, myapp.py)app.yaml中(见here有详细介绍):

看起来是这样的:

的app.yaml:

application: myapp 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: true 
handlers: 
    - url: /.* 
    script: myapp.app 

main.py:

import webapp2 

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

app = webapp2.WSGIApplication([('/', MainPage)]) 

""" Old code: 
def main(): 
    run_wsgi_app(app) 

if __name__ == '__main__': 
    main() 
""" 

另外,您还可以禁用并发请求(线程=假)和使用旧的CGI处理程序。

+0

感谢您的指出错误,但我将如何实现OpenID登录? – areke 2012-07-20 12:11:21

+1

一旦您修复了错误,您在问题中发布的教程中的示例应该可以正常工作。 – 2012-07-20 12:13:02

+0

woohoo,我现在得到它:D谢谢 – areke 2012-07-20 12:17:32