我是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_i18npylons.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发行版v2.1.3和tg.devtools 2.1.x
发布于 2011-10-24 23:53:50
错误依赖于WebOb的问题。安装的IIRC1.2b2在AcceptLanguage类上缺少best_matches方法。克服这个问题的最简单方法是用稳定的WebOb-1.1.1替换WebOb-1.2b2。这个解决方案对我来说很好。
PS:如果您使用虚拟环境-只需将lib/python2.7/ site -package/webob中的文件替换为官方网站http://pypi.python.org/pypi/WebOb/1.1.1中的文件
https://stackoverflow.com/questions/7829653
复制相似问题