【问题标题】:Installing Matplotlib [duplicate]安装 Matplotlib [重复]
【发布时间】:2016-10-10 12:21:51
【问题描述】:

我想在 Mac (10.7.5 Lion) 中安装 Matplotlib,其中 python (2.7.1)、pip (8.1.2)、numpy (1.11.0)、astropy(1.2) 已经安装并且按预期工作.首先我尝试了命令

sudo pip install matpltlib

它显示 Matplotlib 1.5.1 已成功安装。但是当我输入 python 并输入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 卸载它,并尝试从源代码安装。当我尝试通过 python setup.py build 构建它时(下载 280 MB 源文件后)它最终会出现类似这样的几个错误-

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 的目录。我不能再调试了。

【问题讨论】:

  • 命令locale(在您的终端中,而不是 Python 中)会产生什么?您的语言环境配置似乎无效。
  • 它产生 "LANG= LC_COLLATE="C" LC_CTYPE="UTF-8" LC_MESSAGES="C" LC_MONETARY="C" LC_NUMERIC="C" LC_TIME="C" LC_ALL= "跨度>
  • 注意你的LC_CTYPE变量;语言环境变量应设置为语言代码,加上一个点和一个字符集。设置为LC_CTYPE="en_US.UTF-8";您可能想找到它的设置位置。

标签: python macos python-2.7 matplotlib


【解决方案1】:

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

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

使用locale 命令查看当前设置。当前设置为 just 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 文件以查看错误变量的设置位置并删除该行,或者至少在其中添加一个语言代码,用点分隔。

【讨论】:

    猜你喜欢
    • 2016-12-28
    • 2014-03-14
    • 1970-01-01
    • 2021-05-20
    • 2018-07-05
    • 2016-04-30
    • 1970-01-01
    • 2021-01-24
    • 2021-02-17
    相关资源
    最近更新 更多