问题:Pelican 3.3 pelican-quickstart错误“ ValueError:未知语言环境:UTF-8”
当我尝试使用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 X Mavericks。
回答 0
您可以尝试在此处或此处发布的解决方案。基本上,向您的〜/ .bash_profile添加一些行:
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
有与此问题相关的未完成的错误报告。看来,Python对语言环境名称的格式做了一些假设,但这些假设并不是普遍有效的。显式设置这些环境变量基本上只是解决该错误的方法。
[编辑:]正如@asmeurer正确指出的那样,以上修正假定使用英语和美国。您应该从locale -a
(由UTF-8
)结尾的列表中选择您首选的语言环境。
回答 1
Gerrat的答案有效,我相信我们应该提到,如果您使用诸如之类的东西zsh
,则应在~/.zshrc
在~/.bash_profile
或之前~/.bash_rc
回答 2
楼上的回答很快!但是我相信像我这样懒惰的人希望更改全局环境,以防万一更改为另一个登录用户后再也不会更改。所以我们需要像这样更改文件:
sudo vi /etc/profile or sudo vi /etc/bashrc
然后在以下文件中添加两行
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
同样,像我这样的懒惰人也可以在一行命令中完成。
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(我也是该页面的原始作者)。
回答 4
此处提到的解决方案都无法在本地应用引擎环境中运行python 3.7项目。
虽然我可以通过命令行检索语言环境,但是:
python3 -c 'import locale; print(locale.getdefaultlocale());'
('en_US', 'UTF-8')
在应用程序引擎环境中找不到该语言环境:
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"
这样就解决了该错误。
回答 5
由于某些原因,我还需要:
export LC_CTYPE=en_US.UTF-8