2011-10-19 35 views
4

我是TurboGears的新手,刚刚在虚拟环境中安装TG2开发。我沿着quickstart guide以下,并已通过TurboGears 2 quickstart立即显示错误

paster quickstart 

成功地建立了一个HelloWorld,我开始在服务器和导航网页浏览器到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,这次没有真子模板选项(这是设置的唯一区别)第二个项目,我也得到了同样的错误:

'AcceptLanguage' object has no attribute 'best_matches' 

不幸的是这个问题的我只能找到一个与此错误完全相关的web search

有没有其他线索我可以使用并提供给stackoverflow来协助回答这个问题?

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

我用什么最新TG2发行版是这个问题,诉2.1.3的时间,tg.devtools的2.1.x

+2

这听起来像国际化的问题,说实话取代的lib/python2.7/site-packages中/的WebOb内的文件。浏览器中的默认语言是什么?您正在使用哪个版本的TurboGears?你能提供一个链接到你正在遵循的确切教程吗?一些较旧的可能会给你最糟糕的TG指令。 – 2011-10-21 05:12:10

+1

我也在这里:任何答案? – alonisser

回答

4

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

PS:如果你使用虚拟ENV - 只是那些从官方​​网站http://pypi.python.org/pypi/WebOb/1.1.1

+0

感谢您的提示。我的虚拟env WebOb是一个.egg的形式 - 网上可用的不是 - 我怎样才能编译成一个鸡蛋,或者这是必要的? – Smittles

+0

明白了 - 虚拟环境运行时下载目录为cmd,使用easy_install setup.py install – Smittles

+0

这样做!这就是答案!我现在得到欢迎屏幕。 :) – Smittles