IPython Notebook 语言环境错误 [重复]

Posted

技术标签:

【中文标题】IPython Notebook 语言环境错误 [重复]【英文标题】:IPython Notebook locale error [duplicate] 【发布时间】:2013-03-20 14:53:12 【问题描述】:

安装最新的Mac OSX 64-bit Anaconda Python distribution 后,我在尝试启动 IPython Notebook 时不断收到 ValueError。

启动 ipython 工作正常:

3-millerc-~:ipython
Python 2.7.3 |Anaconda 1.4.0 (x86_64)| (default, Feb 25 2013, 18:45:56) 
Type "copyright", "credits" or "license" for more information.

IPython 0.13.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

但是启动 ipython 笔记本:

4-millerc-~:ipython notebook

ValueError 的结果(带有回溯):

Traceback (most recent call last):
  File "/Users/millerc/anaconda/bin/ipython", line 7, in <module>
    launch_new_instance()
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/frontend/terminal/ipapp.py", line 388, in launch_new_instance
    app.initialize()
  File "<string>", line 2, in initialize
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/config/application.py", line 84, in catch_config_error
    return method(app, *args, **kwargs)
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/frontend/terminal/ipapp.py", line 313, in initialize
    super(TerminalIPythonApp, self).initialize(argv)
  File "<string>", line 2, in initialize
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/config/application.py", line 84, in catch_config_error
    return method(app, *args, **kwargs)
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/core/application.py", line 325, in initialize
    self.parse_command_line(argv)
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/frontend/terminal/ipapp.py", line 308, in parse_command_line
    return super(TerminalIPythonApp, self).parse_command_line(argv)
  File "<string>", line 2, in parse_command_line
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/config/application.py", line 84, in catch_config_error
    return method(app, *args, **kwargs)
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/config/application.py", line 420, in parse_command_line
    return self.initialize_subcommand(subc, subargv)
  File "<string>", line 2, in initialize_subcommand
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/config/application.py", line 84, in catch_config_error
    return method(app, *args, **kwargs)
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/config/application.py", line 352, in initialize_subcommand
    subapp = import_item(subapp)
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/utils/importstring.py", line 40, in import_item
    module = __import__(package,fromlist=[obj])
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/frontend/html/notebook/notebookapp.py", line 46, in <module>
    from .handlers import (LoginHandler, LogoutHandler,
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/frontend/html/notebook/handlers.py", line 36, in <module>
    from docutils.core import publish_string
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/docutils/core.py", line 20, in <module>
    from docutils import frontend, io, utils, readers, writers
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/docutils/frontend.py", line 41, in <module>
    import docutils.utils
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/docutils/utils/__init__.py", line 20, in <module>
    from docutils.io import FileOutput
  File "/Users/millerc/anaconda/lib/python2.7/site-packages/docutils/io.py", line 18, in <module>
    from docutils.utils.error_reporting import locale_encoding, ErrorString, ErrorOutput
  File "/Users/millerc/anaconda/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/millerc/anaconda/lib/python2.7/locale.py", line 503, in getdefaultlocale
    return _parse_localename(localename)
  File "/Users/millerc/anaconda/lib/python2.7/locale.py", line 435, in _parse_localename
    raise ValueError, 'unknown locale: %s' % localename
ValueError: unknown locale: UTF-8

从终端运行locale 命令:

5-millerc-~:locale 
LANG=
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

【问题讨论】:

LC_CTYPE="UTF-8" 对我来说似乎是错误的。 我将问题更改为平台中立,因为奇怪的是我的 EPD python 安装也出现了同样的问题。 @ubuntu - 如果我先问,这怎么会是重复的? 【参考方案1】:

我在这里总结一下解决方案:http://blog.lobraun.de/2009/04/11/mercurial-on-mac-os-x-valueerror-unknown-locale-utf-8/

我将这些行添加到我的.bash_profile:

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

我重新加载了个人资料:

source ~/.bash_profile

然后我又跑了ipython

ipython notebook

更改语言环境

以上内容适用于美国语言环境中的英语。可能需要不同的设置。

冒着明显的风险,要发现系统的当前设置,请使用:

$ locale

并检索系统上所有有效设置的列表:

$ locale -a

然后选择您喜欢的语言环境。例如,对于瑞士法语语言环境,解决方案如下所示:

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

【讨论】:

导出 LC_ALL 通常是错误的。 当然,此修复仅在您居住在美国时才正确。 您的链接似乎已损坏。 它也适用于西班牙语:export LC_ALL=es_ES.UTF-8;导出 LANG=es_ES.UTF-8 @wRAR 你有任何关于何时和何时不指向export LC_ALL 的参考链接吗?我很想知道,它会帮助任何人。【参考方案2】:

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

【讨论】:

整圈!您提供的链接链接到论坛,然后链接回这个问题:) conda.pydata.org/docs/troubleshooting.html#unknown-locale 对此解决方案有更详细的说明。 那个文档页面比我这里的更有帮助,而且那个错误的链接也没用,所以我只是用这些文档的内容更新了我的答案。仅取消选中该框通常是不够的。您需要将 LANG 环境变量设置为适合您的语言环境的正确值。 不得不恢复这个修复,因为它破坏了 oh-my-zsh ? 我不认为这是终端应用程序中的错误:iTerm2 也有同样的问题。【参考方案3】:

在 iTerm 中进入菜单

Preferences -> Profiles -> Terminal -> (Environment) 

然后取消选中

"Set locale variables automatically"

让这个错误消失了。

【讨论】:

注意:这也适用于 iTerm2。【参考方案4】:

由于您的LC_CTYPE 错误,您应该找出错误值的设置位置并将其更改为en_US.UTF-8 之类的内容。

【讨论】:

以上是关于IPython Notebook 语言环境错误 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

ipython notebook环境搭建

安装 Spark 问题。无法使用 pyspark 打开 IPython Notebook

mac 下 ipython+notebook

ipython notebook教程

ipython notebook在Ubuntu下的安装

ipython notebook 安装及设置的一些后续问题