2015-11-15 21 views
4

我運行包含熊貓的python腳本(即一個導致問題)庫,我得到這個錯誤:的Python - ValueError異常:未知區域:UTF-8

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

enter image description here

恐怕造成的,因爲EI Capitan的問題。請指教。謝謝。

+0

這與您的終端編碼無關,它隻影響終端中文本流的顯示。 – 4ae1e1

+0

我需要解決這個問題。這會影響我的結果。 –

+0

我不認爲這是一個重複的問題,因爲set LC_ALL不適用於我。該解決方案對我來說是在終端的首選項啓動時取消選中Set locale env變量。 – hsc

回答

4

編輯:熊貓,和它的依賴,有localization bugs被發現在非C語言環境和最近版本。

當我通過sudo pip install pandas在設置爲it_IT.UTF-8的終端中將最新版本的Pandas下載到OS X Yosemite計算機上,然後將它導入到新的Python會話中時,我無法重現此問題。

我現在最好的猜測 - 我強調這只是一個猜測 - 是該文件夾中的熊貓版本早於這些修復,並在it_IT.UTF-8中被破解。 (我認爲這是,權衡利弊,較發行特定於埃爾卡皮坦更容易。)


你LC_ALL =未設置。這似乎不尋常;基於other answers here我認爲你應該嘗試將其設置爲LC_ALL =「it_IT.UTF-8」並刪除其他LC_設置。

然後保存您的.bash_profile,打開一個新的終端選項卡,然後重試。

+2

你實際上自相矛盾......你可能在代碼塊中的意思是'LC_ALL =「it_IT.UTF-8」'。 – 4ae1e1

+0

糟糕!現在修復,謝謝! –

+1

'LC_ALL'通常不在OS X上設置,而是'LANG'。如果其他人異常地設置了LC_ALL,則只需設置LC_ALL即可覆蓋。你的'LC_ALL = ...'命令有效地覆蓋你的'LANG = ...'命令 - 從來沒有需要_both_。 – mklement0