Blanktar

  1. top
  2. blog
  3. 2014
  4. 05

pythonのgeventにAssertionErrorとか言われて詰みかけた話

前回に引き続いてgeventのpywsgi。

順調に遊んでいたら、こんなことを言われました。

assert not self.headers_sent
AssertionError

うーん? ヘッダーを送ってないよってか? start_responseはしたよ?

と思いつつログさかのぼってみたら

TypeError: an integer or string of size 1 is required

なんて事が書いてあった。 整数か文字か・・・文字列返してるんだけどな・・・。

いろいろ試してみて分かった。

単純にunicode型に対応していないようです、この子。 適当な文字コードにエンコードしてやるとすんなり動きます。

そんなわけで、gevent使うときはエンコードに気をつけましょう。 ま、python3.x使えよって話かもしれない。

追記
適当に書いちゃったけど、geventはpython3.xに対応してないっぽい?