【问题标题】:Updating matplotlib in virtualenv with pip使用 pip 在 vi​​rtualenv 中更新 matplotlib
【发布时间】:2018-05-15 15:49:32
【问题描述】:

我正在尝试在 virtualenv 中更新我的 matplotlib,现在看来一切都崩溃了 :(
我到目前为止所做的基本上是,

source ~/myenv/bin/activate
pip install -U matplotlib

如果我激活 py 虚拟环境并检查 matplotlib version 它显示 2.1,我以前有 matplotlib 1.3

但我无法从 matplotlib 导入 Axes3D

>>> import importlib
>>> importlib.import_module('mpl_toolkits.mplot3d').__path__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/nld/python-2.7.6-freya/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/home/usr/vir_python/lib/python2.7/site-packages/mpl_toolkits/mplot3d/__init__.py", line 6, in <module>
    from .axes3d import Axes3D
  File "/home/usr/vir_python/lib/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.py", line 32, in <module>
    from matplotlib.cbook import _backports
ImportError: cannot import name _backports

我在 linux 平台上工作并使用 Python 2.7。

还有一个问题,我看到了,

如果我只是打开虚拟 python,而不激活 virtualenv,我会得到matplotlib 2.1

$:~> myenv/bin/python 
Python 2.7.6 (default, Apr 15 2014, 11:17:36) 
[GCC 4.3.4 [gcc-4_3-branch revision 152973]] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
>>> matplotlib.__version__
'2.1.0'

但如果我激活虚拟环境,然后打开虚拟 python,我会得到 matplotlib 1.3.1 或旧的 matplotlib。

$:~> source myenv/bin/activate
(vir_python)$:~> myenv/bin/python
Python 2.7.6 (default, Apr 15 2014, 11:17:36) 
[GCC 4.3.4 [gcc-4_3-branch revision 152973]] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
>>> matplotlib.__version__
'1.3.1'

我按照 Karthik 的建议做了以下事情:

首先激活虚拟python

(vir_python) $: pip install matplotlib==2.1.0
(vir_python) $: pip freeze
backports.functools-lru-cache==1.4
backports.ssl-match-hostname==3.4.0.2
cycler==0.10.0
imageio==2.1.2
Jinja2==2.7.2
MarkupSafe==0.19
matplotlib==1.3.1
mpi4py==2.0.0
nose==1.3.1
numpy==1.12.0
olefile==0.44
pandas==0.19.2
Pillow==4.0.0
pyparsing==2.0.1
python-dateutil==2.6.0
pytz==2016.10
scipy==0.19.0
six==1.10.0
subprocess32==3.2.7
svg.path==1.1
tornado==3.2
virtualenv==1.11.4

【问题讨论】:

    标签: python matplotlib pip virtualenv


    【解决方案1】:

    您的 virtualenv 已安装本地 matplotlib。 采购激活后,使用

    升级 matplotlib

    pip install matplotlib==2.1.0

    pip install --upgrade matplotlib

    【讨论】:

    • 我是使用myenv/bin/pip 中的pip 还是通常的pip
    • 我做到了,它仍然在虚拟 python 中提供matplotlib 版本1.3.1
    • 我需要向我的.bashrc 添加任何内容来进行更改吗?
    • #1。你必须在你的 virtualenv #2 中使用 pip。 pip freeze 命令的输出是什么? #3。不,您不需要 .bashrc 中的任何内容
    • 我添加了pip freeze的输出
    【解决方案2】:
    plt.__version__
    >> 3.0.0
    

    这是我系统中 matplotlib 的当前版本。 在终端中,输入以下 cmets:

    $source activate envname
    $pip install --upgrade matplotlib
    

    在 python 提示符下,

    import matplotlib as plt
    plt.__version__
    >> 3.0.2
    

    更新现有版本

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-08
      • 2017-03-26
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-21
      • 2016-01-12
      相关资源
      最近更新 更多