TurboGears 2快速入门立即显示错误

时间:2011-10-19 23:58:53

标签: python pylons turbogears2

我是TurboGears的新手,刚刚在虚拟环境中安装了TG2开发。我正在追随quickstart guide,并通过

成功建立了一个helloworld
paster quickstart

我启动了服务器并将Web浏览器导航到localhost:8080

你不知道吗,我立即收到错误,而不是文档建议我应该看到的欢迎信息。

错误如下:

AttributeError: 'AcceptLanguage' object has no attribute 'best_matches'

这是追踪:

URL: http://localhost:8080/
File 'C:\\VirtualEnv_1\\lib\\site-packages\\weberror-0.10.3-py2.7.egg\\weberror\\evalexception.py', line 431 in respond
  app_iter = self.application(environ, detect_start_response)
File 'C:\\VirtualEnv_1\\lib\\site-packages\\beaker-1.6-py2.7.egg\\beaker\\middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File 'C:\\VirtualEnv_1\\lib\\site-packages\\beaker-1.6-py2.7.egg\\beaker\\middleware.py', line 155 in __call__
  return self.wrap_app(environ, session_start_response)
File 'C:\\VirtualEnv_1\\lib\\site-packages\\routes-1.12.3-py2.7.egg\\routes\\middleware.py', line 131 in __call__
  response = self.app(environ, start_response)
File 'C:\\VirtualEnv_1\\lib\\site-packages\\pylons-1.0-py2.7.egg\\pylons\\wsgiapp.py', line 107 in __call__
  response = self.dispatch(controller, environ, start_response)
File 'C:\\VirtualEnv_1\\lib\\site-packages\\pylons-1.0-py2.7.egg\\pylons\\wsgiapp.py', line 312 in dispatch
  return controller(environ, start_response)
File 'C:\\VirtualEnv_1\\Scripts\\HelloWorld\\helloworld\\lib\\base.py', line 27 in __call__
  return TGController.__call__(self, environ, start_response)
File 'C:\\VirtualEnv_1\\lib\\site-packages\\pylons-1.0-py2.7.egg\\pylons\\controllers\\core.py', line 211 in __call__
  response = self._dispatch_call()
File 'C:\\VirtualEnv_1\\lib\\site-packages\\pylons-1.0-py2.7.egg\\pylons\\controllers\\core.py', line 162 in _dispatch_call
  response = self._inspect_call(func)
File 'C:\\VirtualEnv_1\\lib\\site-packages\\pylons-1.0-py2.7.egg\\pylons\\controllers\\core.py', line 105 in _inspect_call
  result = self._perform_call(func, args)
File 'C:\\VirtualEnv_1\\lib\\site-packages\\turbogears2-2.1.3-py2.7.egg\\tg\\controllers\\dispatcher.py', line 230 in _perform_call
  setup_i18n()
File 'C:\\VirtualEnv_1\\lib\\site-packages\\turbogears2-2.1.3-py2.7.egg\\tg\\i18n.py', line 61 in setup_i18n

pylons.request.accept_language.best_matches()))     AttributeError:'AcceptLanguage'对象没有属性'best_matches'

安装时我搞砸了什么,或者这是TurboGears的问题吗?

编辑:我创建了第二个名为GoodnightMoon的项目,这次没有Mako模板选项(这是设置之间的唯一区别),我得到了同样的错误:

'AcceptLanguage' object has no attribute 'best_matches'

不幸的是,这个问题是我唯一可以找到web search与此错误完全相关的问题。

我是否可以使用任何其他线索并提供给stackoverflow来帮助回答这个问题?

根据Michael Pederson的建议,我研究了i18n。我有一个只有一个子目录的i18n目录,名为ru(俄语,我假设)。我正在研究英语默认的系统和浏览器。

我正在使用最新的TG2发行版,在这个问题的时候,v.2.1.3和tg.devtools 2.1.x

1 个答案:

答案 0 :(得分:4)

WebOb错误依赖的问题。安装了IIRC 1.2b2,它在AcceptLanguage类上缺少best_matches方法。克服这个麻烦的最简单方法是用稳定的WebOb-1.1.1替换WebOb-1.2b2。 这个解决方案适合我。

PS:如果您使用virtual-env - 只需将lib / python2.7 / site-packages / webob中的文件替换为官方网站http://pypi.python.org/pypi/WebOb/1.1.1

中的文件