鹈鹕3.3鹈鹕-快速启动错误“ ValueError: 未知区域: UTF-8”

当我尝试使用鹈鹕3.3时,我输入了推荐“鹈鹕-快速启动”,出现了一些错误。

这些都是错误:

(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。

90324 次浏览

你可以尝试一下发布在 给你或者 给你上的解决方案。基本上,在你的 ~/. bash _ profile 中添加一些代码行:

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

有一个未决的 漏洞报告相关的问题。Python 似乎对语言环境名称的格式做了一些假设,但这些假设并非普遍有效。显式地设置这些环境变量基本上只是解决该错误的一种方法。

[编辑: ] 正如@asmerer 正确指出的那样,上面的修复程序假定使用英语和美国语言。您应该从 locale -a给出的列表(通常是以 UTF-8结尾的列表)中选择您的首选区域设置。

Gerrat 的回答是有效的,我相信我们应该提到,如果您使用类似于 zsh的东西,那么您应该向 ~/.zshrc添加线条,而不是向 ~/.bash_profile~/.bash_rc添加线条

楼上的回答很快很棒!但是我相信像我这样懒惰的人想要改变全局环境,以防在改变到另一个登录用户时再也不会改变。所以我们需要修改文件,比如:

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

我从 这个问题这里重新发布我的答案,因为它被标记为这一个的副本,并接受这个问题的答案在许多方面是错误的。

这是 OS X 终端应用程序中的一个 bug,它只出现在某些地区(国家/语言组合)。打开/应用程序/实用程序中的终端,并取消选中“在启动时设置本地环境变量”框。

enter image description here

这将设置你的 ABc0环境变量为空。这可能导致终端使用不正确的区域设置。终端中的 locale 命令将告诉您所使用的设置。若要使用正确的语言,请向 bash 配置文件(通常为 ~/.profile)添加一行

export LANG=your-lang

用语言的正确区域设置说明符替换 your-lang。命令 locale -a将显示所有说明符。例如,美国英语的语言代码是 en_US.UTF-8。区域设置影响可用翻译时所使用的翻译,以及日期、货币和小数的格式。

注意,这张图片和内容来自 http://conda.pydata.org/docs/troubleshooting.html#unknown-locale(我也是这个页面的原作者)。

出于某种原因,我还需要:

export LC_CTYPE=en_US.UTF-8

这里提到的所有解决方案都不适合我在本地应用程序引擎环境中运行 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

因此,我必须在 app.yaml 文件中显式设置 env_variables:

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

这就解决了问题。