将 matplotlib 升级到 1.2 或 1.3

将 matplotlib 升级到 1.2 或 1.3

我正在尝试升级我的 python matplotlib 但由于某种原因我无法升级。

我最初安装 matplotlib 时使用: apt-get install python-matplotlib 这很好。然而它默认为1.1版本

然后我从网站下载了 1.2 源代码,然后提取 tar.gz 并运行:

sudo python setup.py build
sudo python setup.py install

在这一切之后,我进入 python2.7idle 并输入:

import matplotlib
print matplotlib.__version__
>>>1.1.1

所以看起来它没有更新。如何将 matplotlib 更新到 1.2 或更高版本?

答案1

这可能是您的 PYTHONPATH 环境变量存在问题,或者缺少该变量。使用apt-get,matplotlib 将被安装到/usr目录前缀中。所以你会发现整个包安装在像/usr/lib/python2.7/site-packages/matplotlib.

您可以使用如下命令确认这一点:dpkg -L python-matplotlib

当您单独下载 matplotlib 源代码、使用上述命令自行构建和安装它时,您将把它安装到前缀中/usr/local。这很好,因为您的系统库(在/usr前缀中)由 管理dpkg,并且您不想覆盖或干扰这些文件,因为担心破坏另一个依赖包或留下杂散的非托管文件。

现在,您可能正在使用系统安装的 python。它预装在(所有?)Linux 发行版上,那你为什么不呢?但这是安装在/usr. Python 的默认模块搜索路径是根据其安装位置的前缀构建的。因此,你的系统 python(配置为--prefix=/usr)默认情况下只会搜索安装在 中的模块/usr/lib/python2.7,完全忽略那些手动安装在 中的模块/usr/local/lib/python2.7

因此,为了解决这个问题,这里有一些可能的解决方案:-

  1. (不要这样做!)使用 . 构建并安装 matplotlib --prefix=/usr

  2. 编辑您的PYTHONPATH以包括/usr/local/lib/python2.7/site-packages 当它是您自己的计算机时,这是一个可行的解决方案。您以 root 用户身份安装软件包,然后编辑~/.bashrc/etc/bash.bashrc导出 PYTHONPATH 环境变量。对于多用户计算机或服务器来说,这有点混乱,因为所有这些软件包都必须由 root 用户手动升级,这可能并不总是很方便。最好将其留给您的系统包管理器。

  3. 用于easy_install安装 matplotlib (或任何库皮皮) 系统 Python 会在某个地方找到它。在这种情况下,它可能会抱怨您已经安装了它(因此您应该先使用 卸载它apt-get)。

    easy_install -m matplotlib
    

    PyPi 通常会保持最新的 Python 包版本。如果你必须在那里上传一个包(p*ss),你就会知道为什么,所以这是获取最新 python 包的可靠方法。您需要distribute安装该软件包 - 使用apt-get.

  4. 将 matplotlib 1.2 安装到您的用户目录中。当存储库更新到您需要的版本时,您可以稍后将其删除。

    python setup.py install --user

后一种方法是我最喜欢的方法。我最近才发现它,但它不需要编辑任何系统或用户特定的配置文件或环境变量,不会干扰系统软件包,也不需要用户sudo安装。

这将在~/.local/lib/python2.7Linux 上安装 matplotlib;在~/Library/...OS X 上,也可能在其他发行版的其他地方。无论哪种方式,所有平台都支持此方法,并且用户特定的模块将优先于系统范围的模块加载。

现在去享受 matplotlib 的乐趣吧。这是一个很棒的包!

PS 不要以 root 用户身份构建软件包。我认为将 root 拥有的文件保留在用户目录中是不好的做法。

PPS 您可以检查 matplotlib(或任何其他 python 模块)从 Python 解释器中加载的位置。例如:-

>>> import matplotlib
>>> print matplotlib.__file__
/usr/lib/python2.7/site-packages/matplotlib/__init__.pyc

相关内容