TurboGears 2 quickstart shows error immediately

末鹿安然 提交于 2019-12-23 12:44:20

问题


I am new to TurboGears and have just installed TG2 development in a virtual environment. I'm following along in the quickstart guide, and have successfully built a helloworld via

paster quickstart

I started the server and navigated a web-browser to localhost:8080

Wouldn't you know it, I immediately get an error, and not the welcome message the documentation suggests I should be seeing.

The error reads:

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

Here's the trace:

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' object has no attribute 'best_matches'

Did I mess something up when I installed it, or is this a problem with TurboGears?

Edit: I created a second project I named GoodnightMoon, this time without the Mako template option (which is the only difference between setups) and I get the same error:

'AcceptLanguage' object has no attribute 'best_matches'

Unfortunately this question is the only one I can find with a web search related exactly to this error.

Are there any other clues I can use and provide to stackoverflow to assist in answering this question?

Following Michael Pederson's advice below, I researched the i18n. I have an i18n directory with only one sub-directory, named ru (Russian, I assume). I'm working on English-defaulted systems and browsers.

I'm using whatever the most current TG2 distro is at the time of this question, v. 2.1.3, and tg.devtools 2.1.x


回答1:


The problem in wrong dependency to WebOb. IIRC 1.2b2 is installed which lack best_matches method on AcceptLanguage class. The easiest way to overcome that trouble is to replace WebOb-1.2b2 with stable WebOb-1.1.1. This solution works fine for me.

PS: if you use virtual-env - just replace files inside lib/python2.7/site-packages/webob with ones from official site http://pypi.python.org/pypi/WebOb/1.1.1



来源:https://stackoverflow.com/questions/7829653/turbogears-2-quickstart-shows-error-immediately

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!