【问题标题】:Pelican 3.3 pelican-quickstart error "ValueError: unknown locale: UTF-8"Pelican 3.3 pelican-quickstart 错误“ValueError:未知语言环境:UTF-8”
【发布时间】:2013-11-26 11:52:07
【问题描述】:

当我尝试使用 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。

【问题讨论】:

  • 在小牛上使用 kivy 时遇到同样的问题

标签: python python-2.7 pelican


【解决方案1】:

您可以尝试发布herehere 的解决方案。基本上,在你的 ~/.bash_profile 中添加一些行:

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

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

[编辑:] 正如@asmeurer 正确指出的那样,上述修复假定英语和美国您真的应该从locale -a 给出的列表中选择您喜欢的语言环境(通常以UTF-8)。

【讨论】:

  • 我已经注销/登录了电脑。谢谢大家。
  • 这也解决了我在鱼壳中 MAC OSX 上的 anaconda 的问题。设置 -x LC_ALL en_US.UTF-8 设置 -x LANGen_US.UTF-8
  • 它有效,但谁能解释我们为什么要这样做?
  • 这里有一个更方便的方法:echo -e "export LC_ALL=en_US.UTF-8\nexport LANG=en_US.UTF-8" &gt;&gt; ~/.bashrc &amp;&amp; source ~/.bashrc
  • 此修复仅在您会说英语且居住在美国的情况下才正确(看到此问题的人通常不是这种情况)。真正的解决方法是将LANG 设置为适合您的语言环境的正确字符串(您可以使用locale -a 将它们全部列出),通常使用以UTF-8 结尾的字符串。
【解决方案2】:

Gerrat 的回答有效,我相信我们应该提到,如果您使用 zsh 之类的东西,您应该在 ~/.zshrc 中添加行而不是 ~/.bash_profile~/.bash_rc

【讨论】:

    【解决方案3】:

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

    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
    

    【讨论】:

      【解决方案4】:

      我在这里从this question 重新发布我的答案,因为它被标记为与此答案的重复,并且该问题的公认答案在很多方面都是错误的。

      这是 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(我也是该页面的原作者)。

      【讨论】:

        【解决方案5】:

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

        这样就解决了这个错误。

        【讨论】:

          【解决方案6】:

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

          export LC_CTYPE=en_US.UTF-8
          

          【讨论】:

          • 出于某种原因,您得到了我一直在寻找的答案……已经过了 2 个小时。谢谢!
          猜你喜欢
          • 2016-02-16
          • 2015-10-02
          • 1970-01-01
          • 2016-08-01
          • 2016-06-25
          • 1970-01-01
          • 2016-12-19
          相关资源
          最近更新 更多