【问题标题】:Python - ValueError: unknown locale: UTF-8 [duplicate]Python - ValueError:未知语言环境:UTF-8 [重复]
【发布时间】:2016-02-16 10:50:23
【问题描述】:

我运行包含 Pandas(导致问题的那个)库的 python 脚本我收到了这个错误:

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    import pandas
ImportError: No module named pandas

但如果我从包路径导入以确保它检测到 Pandas 库,则会收到此错误消息

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    import pandas
  File "/usr/local/lib/python2.7/site-packages/pandas/__init__.py", line 44, in <module>
    from pandas.core.api import *
  File "/usr/local/lib/python2.7/site-packages/pandas/core/api.py", line 9, in <module>
    from pandas.core.groupby import Grouper
  File "/usr/local/lib/python2.7/site-packages/pandas/core/groupby.py", line 16, in <module>
    from pandas.core.frame import DataFrame
  File "/usr/local/lib/python2.7/site-packages/pandas/core/frame.py", line 41, in <module>
    from pandas.core.series import Series
  File "/usr/local/lib/python2.7/site-packages/pandas/core/series.py", line 2864, in <module>
    import pandas.tools.plotting as _gfx
  File "/usr/local/lib/python2.7/site-packages/pandas/tools/plotting.py", line 28, in <module>
    import pandas.tseries.converter as conv
  File "/usr/local/lib/python2.7/site-packages/pandas/tseries/converter.py", line 7, in <module>
    import matplotlib.units as units
  File "/usr/local/lib/python2.7/site-packages/matplotlib/__init__.py", line 1131, in <module>
    rcParams = rc_params()
  File "/usr/local/lib/python2.7/site-packages/matplotlib/__init__.py", line 975, in rc_params
    return rc_params_from_file(fname, fail_on_error)
  File "/usr/local/lib/python2.7/site-packages/matplotlib/__init__.py", line 1100, in rc_params_from_file
    config_from_file = _rc_params_in_file(fname, fail_on_error)
  File "/usr/local/lib/python2.7/site-packages/matplotlib/__init__.py", line 1018, in _rc_params_in_file
    with _open_file_or_url(fname) as fd:
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/contextlib.py", line 17, in __enter__
    return self.gen.next()
  File "/usr/local/lib/python2.7/site-packages/matplotlib/__init__.py", line 1000, in _open_file_or_url
    encoding = locale.getdefaultlocale()[1]
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/locale.py", line 543, in getdefaultlocale
    return _parse_localename(localename)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/locale.py", line 475, in _parse_localename
    raise ValueError, 'unknown locale: %s' % localename
ValueError: unknown locale: UTF-8

我已经用这些行更新了我的.bash_profile.bashrc,但即使我已经重新启动终端和我的机器,它仍然无法正常工作。

export LANG="it_IT.UTF-8"  
export LC_COLLATE="it_IT.UTF-8"  
export LC_CTYPE="it_IT.UTF-8"  
export LC_MESSAGES="it_IT.UTF-8"  
export LC_MONETARY="it_IT.UTF-8"  
export LC_NUMERIC="it_IT.UTF-8"  
export LC_TIME="it_IT.UTF-8"  
export LC_ALL="it_IT.UTF-8"

我还在终端首选项中启用了Set locale environment variables on startup

恐怕问题是因为 El Capitan 造成的。

【问题讨论】:

  • 这和你的终端编码无关,只影响终端中文本流的显示。
  • 我需要解决这个问题。它会影响我的结果。
  • 我不认为这是一个重复的问题,因为 set LC_ALL 对我不起作用。对我有用的解决方案是在终端的首选项中取消选中 Set locale env variables on startup。

标签: python bash pandas osx-elcapitan


【解决方案1】:

编辑:Pandas 及其依赖项的localization bugs 在非 C 语言环境中被发现并在最近的版本中得到修复。

当我在设置为 it_IT.UTF-8 的终端中通过 sudo pip install pandas 将最新版本的 Pandas 下载到 OS X Yosemite 计算机上,然后在新的 Python 会话中导入它时,我无法重现这一点问题。

我现在最好的猜测 - 我要强调这只是一个猜测 - 是该文件夹中的 Pandas 版本早于那些修复并且在 it_IT.UTF-8 中被破坏。 (总的来说,我确实认为这比 El Capitan 特有的问题更有可能。)


您的 LC_ALL= 未设置。这似乎不寻常;基于other answers here,我认为您应该尝试将其设置为 LC_ALL="it_IT.UTF-8" 并删除其他 LC_ 设置。

然后保存您的 .bash_profile,打开一个新的终端选项卡,然后重试。

【讨论】:

  • 你实际上自相矛盾......你可能是指代码块中的LC_ALL="it_IT.UTF-8"
  • 糟糕!现已修复,谢谢!
  • LC_ALL 通常在 OS X 上设置,但 LANG 是。如果其他人(不寻常地)也设置了LC_ALL,您只需要设置LC_ALL 即可覆盖。您的 LC_ALL=... 命令有效地覆盖了您的 LANG=... 命令 - 永远不需要 both
  • 支持@mklement0 的声明:man locale
  • 浏览了man locale,我知道我错了。这不会改变 OP 的原始语言环境设置。
猜你喜欢
  • 2015-10-02
  • 2016-08-01
  • 2016-06-25
  • 2016-12-19
  • 2013-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多