在使用fish shell时,导入pandas时出现错误'unknown locale: UTF-8' (Mac OS X)。

3

我最近升级到了Python 3.5和最新版本的pandas pandas (0.17.1),但这让我的程序出现了问题。我使用的是Mac OS X 10.9.5操作系统,并且使用fish shell。请问我该怎么办?

cls@clsmba ~> python3
Python 3.5.0 (default, Sep 23 2015, 04:41:33) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.5/site-packages/pandas/__init__.py", line 44, in <module>
    from pandas.core.api import *
  File "/usr/local/lib/python3.5/site-packages/pandas/core/api.py", line 9, in <module>
    from pandas.core.groupby import Grouper
  File "/usr/local/lib/python3.5/site-packages/pandas/core/groupby.py", line 17, in <module>
    from pandas.core.frame import DataFrame
  File "/usr/local/lib/python3.5/site-packages/pandas/core/frame.py", line 41, in <module>
    from pandas.core.series import Series
  File "/usr/local/lib/python3.5/site-packages/pandas/core/series.py", line 2909, in <module>
    import pandas.tools.plotting as _gfx
  File "/usr/local/lib/python3.5/site-packages/pandas/tools/plotting.py", line 28, in <module>
    import pandas.tseries.converter as conv
  File "/usr/local/lib/python3.5/site-packages/pandas/tseries/converter.py", line 7, in <module>
    import matplotlib.units as units
  File "/usr/local/lib/python3.5/site-packages/matplotlib/__init__.py", line 1131, in <module>
    rcParams = rc_params()
  File "/usr/local/lib/python3.5/site-packages/matplotlib/__init__.py", line 975, in rc_params
    return rc_params_from_file(fname, fail_on_error)
  File "/usr/local/lib/python3.5/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/python3.5/site-packages/matplotlib/__init__.py", line 1018, in _rc_params_in_file
    with _open_file_or_url(fname) as fd:
  File "/usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5/lib/python3.5/contextlib.py", line 59, in __enter__
    return next(self.gen)
  File "/usr/local/lib/python3.5/site-packages/matplotlib/__init__.py", line 1000, in _open_file_or_url
    encoding = locale.getdefaultlocale()[1]
  File "/usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5/lib/python3.5/locale.py", line 559, in getdefaultlocale
    return _parse_localename(localename)
  File "/usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5/lib/python3.5/locale.py", line 487, in _parse_localename
    raise ValueError('unknown locale: %s' % localename)
ValueError: unknown locale: UTF-8

1
请查看此链接:https://dev59.com/cmIj5IYBdhLWcg3wuHTP - Mikko Ohtamaa
我不使用bash,而是fish——这个解决方案如何适用? - clstaudt
1
尝试按照http://conda.pydata.org/docs/troubleshooting.html#unknown-locale的建议去做。 - hi15
2个回答

8

适用于Fish Shell

set -x LC_ALL en_US.UTF-8 
set -x LANG en_US.UTF-8

是的,将这些行添加到~/.config/fish/config.fish可以解决问题。 - clstaudt
3
你不希望设置 LC_ALL - 那是一个旨在调试或覆盖的巨锤,不应轻易使用。 - faho
2
只有当您说英语并居住在美国时,这才是正确的答案,而对于看到此问题的人来说,这几乎从未发生过。一般情况下,您应该将其设置为适合您所在地区的正确代码(locale -a 将列出所有可用选项)。 - asmeurer

1
确保您的终端设置为导出适当的区域变量,如this answer所述,并且在系统偏好设置中正确设置了您的地区。

看起来两者已经设置正确,所以我无法确认这是否已解决了我的问题。 - clstaudt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接