Pelican 3.3 pelican-quickstartエラー「ValueError:不明なロケール:UTF-8」


154

pelican3.3を使用しようとしたときに、「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です。


マーベリックスでキビーを使用しているときに同じ問題が発生しました
Ciasto piekarz

回答:


456

ここまたはここに投稿された解決策を試すことができます。基本的に、〜/ .bash_profileにいくつかの行を追加します:

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

この問題に関連する未解決のバグレポートがあります。Pythonは、普遍的に有効ではないロケール名の形式についていくつかの仮定をしているようです。これらの環境変数を明示的に設定することは、基本的にはそのバグの単なる回避策です。

[編集:] @asmeurerが正しく指摘するように、上記の修正は英語を想定し、米国あなたは本当にによって与えられたリストからお好みのロケールを選択する必要がありますlocale -a(一般的に1で終了することUTF-8)。


PCからログアウト/ログインしました。全てに感謝。
ホセカルロスラモスカルメナーテス2014

8
これにより、魚のシェルでMAC OSXのanacondaを使用して、問題も解決しました。set -x LC_ALL en_US.UTF-8 set -x LANGen_US.UTF-8
andershqst 2014年

2
それはうまくいったが、なぜ私たちがそれをしなければならないのか誰でも説明できますか?
jblixr 2016年

6
ここでは、より便利にこれを行うにはワンライナーです:echo -e "export LC_ALL=en_US.UTF-8\nexport LANG=en_US.UTF-8" >> ~/.bashrc && source ~/.bashrc
waldyrious

2
この修正は、英語を話し、米国に住んでいる場合にのみ正解です(通常、この問題を目にする人には当てはまりません)。本当の修正はLANG 、ロケールに合った正しい文字列に設定することです(すべてをでリストできますlocale -a)。通常はで終わるものを使用しUTF-8ます。
asmeurer

9

ジェラットの答えはうまくいきます、そして私がzshあなたがのようなものを使うなら、あなたはの~/.zshrc代わりに~/.bash_profileまたは~/.bash_rc


9

2階の答えは素晴らしかったです!しかし、私のような怠惰な人々は、別のログインユーザーに変更されている間は二度と変更されないように、グローバル環境を変更したいと考えています。したがって、次のようにファイルを変更する必要があります。

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

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

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

それらの1つを見逃さないでください。$ 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

3

私はこの質問からの私の回答をここに再投稿しています。これはこの質問の重複としてマークされていたためです。また、この質問で受け入れられた回答は、多くの点で間違っています。

これは、特定のロケール(国/言語の組み合わせ)でのみ表示されるOS Xターミナルアプリのバグです。/ Applications / Utilitiesでターミナルを開き、[起動時にロケール環境変数を設定する]チェックボックスをオフにします。

ここに画像の説明を入力してください

これにより、LANG環境変数が空に設定されます。これにより、ターミナルがロケールの誤った設定を使用する可能性があります。ターミナルのlocaleコマンドは、使用されている設定を通知します。正しい言語を使用するには、bashプロファイルに行を追加します(通常は~/.profile

export LANG=your-lang

your-lang使用する言語の正しいロケール指定子で置き換えます。コマンドlocale -aはすべての指定子を表示します。たとえば、米国英語の言語コードはen_US.UTF-8です。ロケールは、使用可能な翻訳、および日付、通貨、および小数のフォーマット方法に影響します。

この画像とコンテンツはhttp://conda.pydata.org/docs/troubleshooting.html#unknown-localeから取得したものであることに注意してください(私はそのページの元の作者でもあります)。


2

ここで述べた解決策はどれも、ローカルのApp Engine環境でpython 3.7プロジェクトを実行するのに役立ちませんでした。

コマンドラインからロケールを取得することもできますが、

python3 -c 'import locale; print(locale.getdefaultlocale());'
('en_US', 'UTF-8')  

そのロケールはApp Engine環境内で見つかりませんでした:

File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/locale.py", line 568, in getdefaultlocale
    return _parse_localename(localename)
File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/locale.py", line 495, in _parse_localename
    raise ValueError('unknown locale: %s' % localename)
ValueError: unknown locale: UTF-8

したがってenv_variables、app.yamlファイルで明示的に設定する必要がありました。

env_variables:
  LC_ALL: "en_US:UTF_8"
  LC_CTYPE: "en_US:UTF_8"

そして、それはバグを解決しました。


1

何らかの理由で私も必要でした:

export LC_CTYPE=en_US.UTF-8

どういうわけか、あなたが私が探していた答えを得ました...それは2時間のようでした。ありがとう!
Kiwad
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.