Turbuears 2 QuickStart zeigt sofort Fehler an
-
27-10-2019 - |
Frage
Ich bin neu in Turbuears und habe gerade die TG2 -Entwicklung in einer virtuellen Umgebung installiert. Ich folge in der Schnellstartanleitung, und habe erfolgreich eine helloWorld durch gebaut
paster quickstart
Ich startete den Server und navigierte einen Webbrowser zu Localhost: 8080
Würde du es nicht wissen, ich bekomme sofort einen Fehler und nicht die Begrüßungsnachricht, die die Dokumentation vorschlägt, sollte ich sehen.
Der Fehler lautet:
AttributeError: 'AcceptLanguage' object has no attribute 'best_matches'
Hier ist die Spur:
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: 'ACCEPTALGUAGE' Objekt hat kein Attribut 'BEST_MATCHES'
Habe ich etwas vermasselt, als ich es installiert habe, oder ist dies ein Problem mit Turbogears?
Bearbeiten: Ich habe ein zweites Projekt erstellt, das ich Goodnight Mond genannt habe, diesmal ohne die Option Mako -Vorlage (was der einzige Unterschied zwischen Setups ist) und ich erhalte den gleichen Fehler:
'AcceptLanguage' object has no attribute 'best_matches'
Leider ist diese Frage die einzige, die ich mit a finden kann Web-Suche genau mit diesem Fehler verwandt.
Gibt es andere Hinweise, die ich Stackoverflow verwenden kann und um diese Frage zu beantworten?
Nach Michael Pedersons Rat unten habe ich das i18n recherchiert. Ich habe ein i18n-Verzeichnis mit nur einem Unterverzeichnis namens Ru (Russisch, nehme ich an). Ich arbeite an englisch gestalteten Systemen und Browsern.
Ich benutze das, was die aktuellste TG2 -Distribution zum Zeitpunkt dieser Frage ist, v. 2.1.3 und TG.Devtools 2.1.x
Lösung
Das Problem in der falschen Abhängigkeit von Webob. IIRC 1.2B2 ist installiert, wobei die Methode der Best_Match -Methode in der Akzeptanzklasse fehlt. Der einfachste Weg, um dieses Problem zu überwinden, besteht darin, Webob-1.2b2 durch stabile Webob-1.1.1 zu ersetzen. Diese Lösung funktioniert gut für mich.
PS: Wenn Sie Virtual-Env verwenden-ersetzen Sie einfach Dateien in Lib/Python2.7/Site-Packages/Webob durch die offiziellen Site durch diejenigen http://pypi.python.org/pypi/webob/1.1.1