2011-10-19 5 views
4

Je suis nouveau sur TurboGears et je viens d'installer le développement de TG2 dans un environnement virtuel. Je suis le long de la quickstart guide, et ont réussi à construire une helloworld viaLe démarrage rapide de TurboGears 2 montre une erreur immédiatement

paster quickstart 

j'ai commencé le serveur et naviguais un navigateur Web pour localhost: 8080

Ne serait-vous le savez, je me suis immédiatement obtenir une erreur, et pas le message de bienvenue que la documentation suggère que je devrais voir.

L'erreur se lit comme suit:

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

est ici la trace:

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: objet 'AcceptLanguage' n'a pas d'attribut '' best_matches

Est-ce que j'ai dérangé quelque chose quand je l'ai installé, ou est-ce un problème avec TurboGears?

Edit: J'ai créé un deuxième projet que j'ai appelé GoodnightMoon, cette fois sans l'option de modèle Mako (qui est la seule différence entre les configurations) et je reçois la même erreur:

'AcceptLanguage' object has no attribute 'best_matches' 

Malheureusement, cette question est la seulement un que je peux trouver avec un web search lié exactement à cette erreur.

Y a-t-il d'autres indices que je peux utiliser et fournir à stackoverflow pour vous aider à répondre à cette question?

En suivant les conseils de Michael Pederson ci-dessous, j'ai fait des recherches sur le i18n. J'ai un répertoire i18n avec un seul sous-répertoire, nommé ru (russe, je suppose). Je travaille sur des systèmes et des navigateurs en anglais.

J'utilise tout ce qui distro la plus récente TG2 est au moment de cette question, v. 2.1.3, et tg.devtools 2.1.x

+2

Cela ressemble à un problème avec i18n, honnêtement. Quelle est la langue par défaut dans votre navigateur? Quelle version de TurboGears utilisez-vous? Pouvez-vous fournir un lien vers le tutoriel exact que vous suivez? Un couple d'anciens pourrait vous donner de mauvaises instructions pour la dernière version de TG. –

+1

même pour moi ici: une réponse pour cela? – alonisser

Répondre

4

Le problème dans la dépendance à tort WebOb. IIRC 1.2b2 est installé sans la méthode best_matches dans la classe AcceptLanguage. Le moyen le plus simple de résoudre ce problème consiste à remplacer WebOb-1.2b2 par WebOb-1.1.1 stable. Cette solution fonctionne très bien pour moi.

PS: si vous utilisez-env virtuel - il suffit de remplacer les fichiers dans lib/python2.7/site-packages/WebOb avec ceux du site officiel http://pypi.python.org/pypi/WebOb/1.1.1

+0

merci pour le conseil. Mon WebOb env virtuel est sous la forme d'un .egg - celui disponible en ligne n'est pas - comment puis-je compiler dans un œuf, ou est-ce nécessaire? – Smittles

+0

Got it - cmd dans le répertoire de téléchargement pendant que Virtual Environment est en cours d'exécution, utilisez easy_install setup.py install – Smittles

+0

C'est fait! C'est la réponse! Je reçois maintenant l'écran de bienvenue. :) – Smittles

Questions connexes