TurboGears 2 muestra de inicio rápido error inmediatamente
-
27-10-2019 - |
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
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