Domanda

Sono nuovo a Turbogears e ho appena installato lo sviluppo di TG2 in un ambiente virtuale. Sto seguendo nel Guida Rapida, e ho costruito con successo un Helloworld tramite

paster quickstart

Ho avviato il server e ho navigato un browser Web su LocalHost: 8080

Non lo sapresti, ricevo immediatamente un errore e non il messaggio di benvenuto che la documentazione suggerisce che dovrei vedere.

L'errore si legge:

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

Ecco la traccia:

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: L'oggetto "AccettLanguage" non ha attributo "best_matches"

Ho rovinato qualcosa quando l'ho installato o è un problema con Turbogears?

EDIT: ho creato un secondo progetto che ho chiamato GoodnightMoon, questa volta senza l'opzione Modello Mako (che è l'unica differenza tra le configurazioni) e ottengo lo stesso errore:

'AcceptLanguage' object has no attribute 'best_matches'

Purtroppo questa domanda è l'unica che posso trovare con un ricerca sul web correlato esattamente a questo errore.

Ci sono altri indizi che posso usare e fornire per stackoverflow per aiutare a rispondere a questa domanda?

Seguendo i consigli di Michael Pederson di seguito, ho studiato l'i18n. Ho una directory i18n con una sola sotto-directory, di nome Ru (russo, presumo). Sto lavorando a sistemi e browser definiti in inglese.

Sto usando qualunque sia la distro TG2 più attuale al momento di questa domanda, v. 2.1.3 e tg.devtools 2.1.x

È stato utile?

Soluzione

Il problema nella dipendenza errata di WebOB. IIRC 1.2B2 è installato che manca il metodo best_matches sulla classe AccettLanguage. Il modo più semplice per superare quel problema è sostituire WebOB-1.2B2 con WebOB-1.1.1 stabile. Questa soluzione funziona bene per me.

PS: se si utilizza Virtual-ENV-Basta sostituire i file all'interno di Lib/Python2.7/Site-Packages/WebOB con quelli del sito ufficiale http://pypi.python.org/pypi/wobob/1.1.1

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top