9
votes

Login de fluide: TypeError: Décodage Unicode n'est pas supporté

Je suis en cours d'exécution de la fiole, du poymon et du ballon-connexion en tant que pile.

mon application de flacon fonctionne bien localement, mais une fois que je l'ai déployé avec UWSGI sur Nginx, je reçois une erreur unicode étrange à partir d'une extension Flask_Login. p>

en bref: strong> p> xxx pré>

Traceback: strong> p>

[pid: 21753|app: 0|req: 5/5] 84.207.253.34 () {38 vars in 600 bytes} [Thu Jun 13 16:51:08 2013] GET / => generated 0 bytes in 4 msecs (HTTP/1.1 500) 0 headers in 0 bytes (0 switches on core 0)
Traceback (most recent call last):
  File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask/app.py", line 1473, in full_dispatch_request
    rv = self.preprocess_request()
  File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask/app.py", line 1666, in preprocess_request
    rv = func()
  File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask_login.py", line 311, in _load_user
    deleted = self._session_protection()
  File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask_login.py", line 325, in _session_protection
    ident = _create_identifier()
  File "/myproject/myproject-env/local/lib/python2.7/site-packages/flask_login.py", line 133, in _create_identifier
    request.headers.get("User-Agent")), 'utf8', errors='replace')
TypeError: decoding Unicode is not supported


0 commentaires

4 Réponses :


7
votes

J'ai le même problème sur mon environnement de développement, avec le ballon 0.10 et le ballon-login 0.1.3

ressemble à un ballon 0.10 comporte maintenant des en-têtes de demande Unicode afin que le ballon-connexion explose lors de l'essai de la chaîne déjà codée. ...

Flack_login Les gens y travaillent déjà: https://github.com/maxcountryman/flask-login/issues/78

(éditer) route instantanée au bonheur temporaire (vu dans le fil jumelé GitHub, thx kofalt et kave!) xxx


3 commentaires

Merci pour le lien. J'ai maintenant supprimé la totalité virtuelle-env et créé une nouvelle pile. Mais je reçois toujours la même erreur: babel == 0.9.6 Flacon == 0.9 Boucle-actifs == 0.8 Flacon-babel == 0.8 Flacon-BCRYPT == 0.5.2 BLACK-LOGIN == 0.1.3 Flacon -WTF == 0.8.3 JINJA2 == 2.7 MarkUpsafe == 0.18 WTForms == 1.0.4 WERKZEUG == 0.9 Argparse == 1.2.1 Fermeture == 20121212 CSSmin == 0,1.4 isodate == 0.4.9 Jsonschema == 2.0.0 PY-BCRYPT == 0.3 PYMONGO == 2.5.2 Python-DATEUTILLE == 1.5 PYTZ == 2013B RATH == 0.5.4 Demandes == 1.1.0 Supprimer == 1.3 WebAssets == 0.8 wsgiref == 0.1. 2


Même ici Kave, peut-être que Werkzeug doit être dégradé aussi? Une solution d'urgence pour le ballon-connexion a toutefois été demandée.


Utilisez du ballon de 0,9 jusqu'à ce qu'il y ait une libération ou un ballon de raccordement vous-même.



1
votes

Selon la Losu S., cela semble être un problème de flacon 0.10. Essayez d'installer la version précédente du ballon dans votre environnement virtuel en utilisant: xxx


1 commentaires

Pip Installez le flacon == 0.9 Ne résolvez pas le problème car il téléchargera werkzeug == 0.9 Vous devez donc utiliser pip Installation flacon == 0.9 Werkzeug == 0.8 .3



17
votes

Le problème ne sera pas résolu en déclassement du ballon seul, car même l'installation de flacon == 0.9 code> installerait les dernières dépendances, qui est le mauvais werkzeug == 0.9 code> Vous feriez donc mieux d'installer les éléments suivants dans cette commande:

pip install werkzeug==0.8.3
pip install flask==0.9
pip install Flask-Login==0.1.3


4 commentaires

À mon avis, c'est la meilleure chose à faire.


RE: Le patch d'urgence: Considérant que le responsable du flacon-connexion a ; Pour attendre un , je ne m'attendrais pas à ce que cela sorte. De l'apparence de celui-ci, le ballon-connexion ne prendra pas en charge le flacon V0.10 jusqu'à une branche de nettoyage. Qui, afaïc, va bien: n'utilisez pas encore le ballon 0.10 :)


Notez également que c'est un bug en amont, a rapporté ici . Flacon-Login a été mis à jour mais ne peut pas résoudre le problème en amont, bien sûr. Vous préférez peut-être utiliser le Série de version 0.2.x maintenant.


Malheureusement, cela ne fonctionne pas pour moi, bien que je soupçonne que c'est du flacon-oauthlib qui est en cause.



2
votes

Ma fourche qui corrige ce problème: xxx

Installation à l'aide de: xxx


0 commentaires