Pergunta

Eu sou novo para TurboGears e acabou de instalar desenvolvimento TG2 em um ambiente virtual. Eu estou seguindo adiante no quickstart guiar , e ter construído com sucesso um helloworld via

paster quickstart

Eu comecei o servidor e navegou um web-browser para localhost: 8080

Será que não sabe que, eu imediatamente receber um erro, e não a mensagem de boas-vindas a documentação sugere que eu deveria estar vendo.

O erro lê:

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

Aqui está o rastreamento:

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' tem nenhum atributo 'best_matches'

Será que eu estragar algo quando eu instalei ele, ou isso é um problema com TurboGears?

Edit: Eu criei um segundo projeto que eu nomeei GoodnightMoon, desta vez sem a opção de modelo Mako (que é a única diferença entre as configurações) e eu recebo o mesmo erro:

'AcceptLanguage' object has no attribute 'best_matches'

Infelizmente esta pergunta é o único que pode encontrar com um pesquisa na web relacionada exatamente a esse erro.

Existem outras pistas que posso usar e fornecer para stackoverflow para ajudar a responder a esta pergunta?

Seguindo o conselho de Michael Pederson abaixo, eu pesquisei o i18n. Eu tenho um diretório i18n com apenas um sub-diretório, chamado ru (russo, presumo). Eu estou trabalhando em sistemas de Inglês de incumprimento e browsers.

Eu estou usando qualquer que seja a distro TG2 mais atual é no momento desta questão, v. 2.1.3, e tg.devtools 2.1.x

Foi útil?

Solução

O problema da dependência errado WebOb. IIRC 1.2b2 está instalado que não têm método best_matches na classe AcceptLanguage. A maneira mais fácil de superar esse problema é para substituir WebOb-1.2b2 com estável WebOb-1.1.1. Esta solução funciona bem para mim.

PS: se você usar o Virtual-env - basta substituir os arquivos dentro lib / python2.7 / site-packages / WebOb com os do site oficial http://pypi.python.org/pypi/WebOb/1.1.1

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top