Быстрый запуск TurboGears 2 сразу показывает ошибку

StackOverflow https://stackoverflow.com/questions/7829653

  •  27-10-2019
  •  | 
  •  

Вопрос

Я новичок в TurboGears и только что установил разработку TG2 в виртуальную среду.Я слежу за Инструкция по началу работы, и успешно создали helloworld через

paster quickstart

Я запустил сервер и перешел через веб-браузер на локальный хост: 8080.

Разве вы не знаете, я сразу же получаю сообщение об ошибке, а не приветственное сообщение, которое, как предполагает документация, я должен видеть.

Ошибка гласит:

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

Вот след:

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:Объект AcceptLanguage не имеет атрибута best_matches.

Я что-то напутал при установке или это проблема TurboGears?

Редактировать:Я создал второй проект, назвав его GoodnightMoon, на этот раз без опции шаблона Mako (это единственное различие между настройками), и я получаю ту же ошибку:

'AcceptLanguage' object has no attribute 'best_matches'

К сожалению, этот вопрос - единственный, который я могу найти с помощью веб-поиск связано именно с этой ошибкой.

Есть ли какие-либо другие подсказки, которые я могу использовать и предоставить stackoverflow, чтобы помочь ответить на этот вопрос?

Следуя приведенному ниже совету Майкла Педерсона, я исследовал i18n.У меня есть каталог i18n только с одним подкаталогом с именем ru (я полагаю, русский).Я работаю над англоязычными системами и браузерами по умолчанию.

Я использую самый последний дистрибутив TG2 на момент ответа на этот вопрос, v.2.1.3 и tg.devtools 2.1.x

Это было полезно?

Решение

Проблема в неправильной зависимости от WebOb.Установлен IIRC 1.2b2, в котором отсутствует метод best_matches в классе AcceptLanguage.Самый простой способ решить эту проблему — заменить WebOb-1.2b2 стабильным WebOb-1.1.1.Это решение отлично работает для меня.

ПС:если вы используете virtual-env - просто замените файлы внутри lib/python2.7/site-packages/webob на файлы с официального сайта. http://pypi.python.org/pypi/WebOb/1.1.1

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top