Pregunta

Soy nuevo en TurboGears y acaba de instalar el desarrollo TG2 en un entorno virtual. Estoy siguiendo a lo largo de la Guía de inicio rápido , y han construido con éxito un holamundo a través

paster quickstart

I inicia el servidor y navegado un navegador web a localhost: 8080

¿No lo sabes, inmediatamente sale un error, y no el mensaje de bienvenida de la documentación sugiere que deberían mostrar.

El error lee:

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

Aquí está la traza:

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: objeto 'AcceptLanguage' no tiene atributo 'best_matches'

¿Se me lío algo cuando lo instalé, o se trata de un problema con TurboGears?

Edit: He creado un segundo proyecto llamado I GoodnightMoon, esta vez sin la opción de plantilla Mako (que es la única diferencia entre las configuraciones) y me da el mismo error:

'AcceptLanguage' object has no attribute 'best_matches'

Por desgracia, esta pregunta es el único que me puedo encontrar con un buscar en la web relacionado con exactitud a este error.

¿Hay otras pistas que puedo utilizar y proporcionar a stackoverflow para ayudar a responder a esta pregunta?

Siguiendo el consejo de Michael Pederson a continuación, que investigó la i18n. Tengo un directorio i18n con sólo un subdirectorio, llamado ru (Rusia, supongo). Estoy trabajando en sistemas de Inglés morosos y navegadores.

Estoy usando cualquiera que sea la distribución TG2 más reciente es en el momento de esta cuestión, v. 2.1.3 y 2.1.x tg.devtools

¿Fue útil?

Solución

El problema de la dependencia erróneo WebOb. IIRC 1.2b2 está instalado que carecen de método en la clase best_matches AcceptLanguage. La forma más fácil de superar ese problema es reemplazar WebOb-1.2b2 con el establo WebOb-1.1.1. Esta solución funciona bien para mí.

PD: si utiliza Virtual-ENV - simplemente reemplazar los archivos dentro de lib / python2.7 / site-packages / WebOb con los de sitio oficial http://pypi.python.org/pypi/WebOb/1.1.1

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top