Python TurboGears 2快速启动立即显示错误

Python TurboGears 2快速启动立即显示错误,python,pylons,turbogears2,Python,Pylons,Turbogears2,我是TurboGears的新手,刚刚在虚拟环境中安装了TG2开发。我一直在跟随,并且已经成功地通过 paster quickstart 我启动了服务器并将web浏览器导航到localhost:8080 你难道不知道吗,我马上就收到了一个错误,而不是文档中建议我应该看到的欢迎信息 错误内容如下: AttributeError: 'AcceptLanguage' object has no attribute 'best_matches' 以下是跟踪: URL: http://localhost

我是TurboGears的新手,刚刚在虚拟环境中安装了TG2开发。我一直在跟随,并且已经成功地通过

paster quickstart
我启动了服务器并将web浏览器导航到localhost: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”对象没有“最佳匹配”属性

是我在安装时弄糟了什么,还是涡轮齿轮有问题

编辑:我创建了第二个名为GoodnightMoon的项目,这次没有Mako模板选项(这是设置之间唯一的区别),我得到了相同的错误:

'AcceptLanguage' object has no attribute 'best_matches'
不幸的是,这个问题是我能找到的唯一一个与这个错误完全相关的问题

是否有任何其他线索我可以使用和提供给stackoverflow来帮助回答这个问题

按照下面Michael Pederson的建议,我研究了i18n。我有一个i18n目录,只有一个子目录,名为ru(我想是俄语)。我正在使用英语默认系统和浏览器


我使用的是在这个问题出现时最新的TG2发行版,v。2.1.3和tg.devtools 2.1.x

对WebOb的错误依赖性问题。安装的IIRC 1.2b2在AcceptLanguage类上缺少最佳匹配方法。克服该问题的最简单方法是用稳定的WebOb-1.1.1替换WebOb-1.2b2。 这个解决方案对我很有效


PS:如果您使用虚拟环境,只需将lib/python2.7/site-packages/webob中的文件替换为来自官方网站的文件即可

老实说,这听起来像是i18n的问题。浏览器中的默认语言是什么?您使用的是哪个版本的TurboGears?你能提供一个链接到你正在学习的教程吗?对于最新版本的TG,一些老版本可能会给你错误的指导。这里我也一样:有什么答案吗?谢谢你的提示。我的虚拟环境WebOb是以.egg的形式出现的-在线可用的不是-我如何编译成一个egg,或者这是必要的?在虚拟环境运行时将它-cmd下载到下载目录,使用easy_install setup.py install完成!这就是答案!我现在进入欢迎屏幕。:)你怎么知道这是个问题?只是翻查了资料来源。从错误中可以明显看出,类AcceptLanguage缺少方法最佳匹配,尽管它有几种用法(挂架等)。我查看了设置描述符,发现webob需求类似于>=1.1。我决定对照源代码检查该方法,并发现它存在于1.1.1中。这就是全部