Pelican 3.3 pelican-quickstart error "ValueError: unknown locale:UTF-8"

pelican3.3を使おうとして、commend "pelican-quickstart"を入力したところ、いくつかのエラーが表示されました。

エラーの内容は以下の通りです。

(PelicanEnv)59-127-113-90:myblog Richo$ pelican-quickstart
Traceback (most recent call last):
  File "/Users/Richo/Dropbox/Github/PelicanEnv/bin/pelican-quickstart", line 9, in <module>
    load_entry_point('pelican==3.3', 'console_scripts', 'pelican-quickstart')()
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pkg_resources.py", line 378, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pkg_resources.py", line 2566, in load_entry_point
    return ep.load()
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pkg_resources.py", line 2260, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pelican/__init__.py", line 16, in <module>
    from pelican.generators import (ArticlesGenerator, PagesGenerator,
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pelican/generators.py", line 20, in <module>
    from pelican.readers import Readers
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pelican/readers.py", line 11, in <module>
    import docutils.core
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/core.py", line 20, in <module>
    from docutils import frontend, io, utils, readers, writers
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/frontend.py", line 41, in <module>
    import docutils.utils
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/utils/__init__.py", line 20, in <module>
    import docutils.io
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/io.py", line 18, in <module>
    from docutils.utils.error_reporting import locale_encoding, ErrorString, ErrorOutput
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/utils/error_reporting.py", line 47, in <module>
    locale_encoding = locale.getlocale()[1] or locale.getdefaultlocale()[1]
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/locale.py", line 513, in getdefaultlocale
    return _parse_localename(localename)
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/locale.py", line 445, in _parse_localename
    raise ValueError, 'unknown locale: %s' % localename
ValueError: unknown locale: UTF-8

私のOSはOS X Mavericksです。

ソリューション

ここ]1またはここに掲載されている解決策を試してみてください。 基本的には、~/.bash_profileにいくつかの行を追加します。

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

この問題に関する未解決の bug report があります。 Python はロケール名のフォーマットについて、普遍的に有効ではないいくつかの仮定をしているようです。 これらの環境変数を明示的に設定することは、基本的にこのバグの回避策に過ぎません。

[Edit:] @asmeurer が正しく指摘しているように、上記の修正は英語と米国を想定しています。

解説 (10)

また、zshのようなものを使っている場合は、~/.bash_profile~/.bash_rcではなく、~/.zshrcに行を追加すべきだということも言及すべきだと思います。

解説 (0)

二階の答えは、迅速な素晴らしいものでした。しかし、私のような怠け者は、別のログインユーザに変更したときに二度と変更できないようにグローバル環境を変更したいと思っていると思います。そこで、以下のようにファイルを変更する必要があります。

sudo vi /etc/profile or sudo vi /etc/bashrc

そして、以下のファイルに2行を追加します。

export LC_ALL="en_US.UTF-8"
export LANG="en_US.UTF-8"

LANGや$LC_ALLだけではうまくいかないので、どちらかを見逃さないようにしてください。その後、コマンドを実行して環境をアクティブにします。

sudo source /etc/profile 
sudo source /etc/bashrc
source ~/.bash_profile 
source ~/.zshrc

繰り返しになりますが、私のような怠け者は1行のコマンドで終わります。

echo -e "export LC_ALL=en_US.UTF-8\nexport LANG=en_US.UTF-8" >> ~/.bash_profile && source ~/.bash_profile
解説 (1)