2016-06-09 60 views
0

我想在Mac(10.7.5 Lion)中安装Matplotlib,其中python(2.7.1),pip(8.1.2),numpy(1.11.0),astropy(1.2)已经安装并正在工作如预期。首先,我试着用命令安装Matplotlib

sudo pip install matpltlib 

,它表明Matplotlib 1.5.1已成功安装。但是,当我进入蟒蛇和类型import matplotlib这表明这样的错误消息:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/Library/Python/2.7/site-packages/matplotlib/__init__.py", line 1131, in <module> 
    rcParams = rc_params() 
    File "/Library/Python/2.7/site-packages/matplotlib/__init__.py", line 975, in rc_params 
    return rc_params_from_file(fname, fail_on_error) 
    File "/Library/Python/2.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 "/Library/Python/2.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 "/Library/Python/2.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 496, in getdefaultlocale 
    return _parse_localename(localename) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/locale.py", line 428, in _parse_localename 
    raise ValueError, 'unknown locale: %s' % localename 
ValueError: unknown locale: UTF-8 

我不明白,究竟是什么问题。我打开了所有这些.py文件,并且已经读取了指定行中的命令。由于这些是只读文件(甚至是根目录),因此无法编辑任何内容。我不知道如何解决这个问题。

好吧,我再由PIP卸载它,并试图从source.When安装我尝试(下载280 MB的源文件后)通过python setup.py build打造它,它最终将几个错误,如这个 -

src/_macosx.m:2494: warning: implicit conversion shortens 64-bit value into a 32-bit value 
src/_macosx.m:1337: error: ‘for’ loop initial declaration used outside C99 mode 
lipo: can't open input file: /var/folders/ks/31hhg2hj3273tbk2xwbjfv2h0000gn/T//ccEOsZZ4.out (No such file or directory) 
lipo: can't open input file: /var/tmp//ccLauouU.out (No such file or directory) 
error: command 'llvm-gcc-4.2' failed with exit status 1 

我查过了,没有名为var的目录。我无法调试这个了。

+0

命令'locale'(在你的终端中,不是Python)产生了什么?您似乎具有无效的区域设置配置。 –

+0

它产生 “LANG = LC_COLLATE =” C “ LC_CTYPE = ”UTF-8“ LC_MESSAGES = ”C“ LC_MONETARY = ”C“ LC_NUMERIC = ”C“ LC_TIME = ”C“ LC_ALL = ” – Sanskriti

+0

注意你的'LC_CTYPE'变量;应该将语言环境变量设置为语言代码,再加上一个点和一个字符集。将它设置为'LC_CTYPE =“en_US.UTF-8”';你可能想找到它的位置。 –

回答

0

您错误地配置了您的语言环境; matplotlib似乎已正确安装,但在导入时调用locale.getdefaultlocale() function

该函数试图从'LANGUAGE','LC_ALL','LC_CTYPE''LANG'环境变量中确定您当前的语言环境。其中至少有一个未设置为语言代码加编码;你有它设置为编码只有

使用locale命令查看当前设置是什么。任何目前设置为只是UTF-8设置不正确,缺少语言代码(如en_USen_GBes_ES等)。您通常应该将设置区域设置变量保留到您的OS X终端;看到https://apple.stackexchange.com/questions/21096/where-does-lang-variable-gets-set-in-mac-os-x

检查~/.profile也许~/.bashrc文件上看到错误的变量被设置和删除这一行,或者至少是增加一个语言代码给它,用点分隔。