9

スタックとしてフラスコ、ピモンゴ、およびフラスコログインを実行しています。

私のフラスコアプリはローカルで正常に動作していますが、nginx で uwsgi を使用してデプロイすると、flask_login 拡張機能から奇妙な Unicode エラーが発生します。

要するに:

TypeError: decoding Unicode is not supported

トレースバック:

[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

これが開発環境で発生しないのはなぜですか? したがって、nginx の uwsgi に何らかの形で関連している必要があります。助言がありますか?どうもありがとう

4

4 に答える 4

17

flask==0.9インストールしても最新の依存関係がインストールされるため、フラスコだけをダウングレードしても問題は解決されません。これは悪いwerkzeug==0.9 ことです。したがって、次の順序でインストールすることをお勧めします。

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

フラスコにログインすると、最新バージョンの 0.1.3 になります。そこに害はありません。このスタックは私にとってはうまくいきます。

緊急パッチが公開されるまで、これが役立つことを願っています。

于 2013-06-13T22:41:42.647 に答える
1

losu S. によると、これは Flask 0.10 の問題のようです。以下を使用して、以前のバージョンの Flask を仮想環境にインストールしてみてください。

pip install Flask==0.9
于 2013-06-13T18:41:17.723 に答える