Python の defaultencoding を変更する。

シェアする

ちょっと BeautifulSoup をいじってたら以下のエラーが出た。

>>> bs.findAll('div')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 93-103: ordinal not in range(128)

あれ、先週は動いてたのにな・・・と思いながら encoding を確認すると・・・

>>> import sys
>>> sys.getdefaultencoding()
'ascii'

となってる。何故先週は動いたし。

とりあえず設定しなおそう。Ubuntu9.10だと、

/usr/lib/python2.6/sitecustomize.py

が対象のファイルになるらしい。こいつは /etc 以下にあるファイルのシンボリックリンクの様なので、それを以下の様に編集する。

$ cat /etc/python2.6/sitecustomize.py
(略)
import sys
sys.setdefaultencoding('utf-8')

上書きしたら確認。

$ python
>>> import sys
>>> sys.getdefaultencoding()
'utf-8'

これでおk

Sponsored Link

シェアする

フォローする