web-dev-qa-db-fra.com

Mise à jour de matplotlib dans virtualenv avec pip

J'essaie de mettre à jour ma matplotlib dans virtualenv et maintenant, tout semble se bloquer :(
Ce que j'ai fait jusqu'à présent, c'est fondamentalement, 

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

J'avais précédemment matplotlib 1.3 maintenant si j'active l'environnement virtuel py et vérifie que matplotlib version affiche 2.1 

mais je ne peux pas importer Axes3D de matplotlib. 

>>> 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/jkhadka/vir_python/lib/python2.7/site-packages/mpl_toolkits/mplot3d/__init__.py", line 6, in <module>
    from .axes3d import Axes3D
  File "/home/jkhadka/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

Je travaille sur la plate-forme Linux et utilise Python 2.7. 

Autre problème, j'ai vu, 

Si je viens d'ouvrir python virtuel, sans activer virtualenv, j'obtiens 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'

mais si j'active l'environnement virtuel puis que j'ouvre le python virtuel avec matplotlib 1.3.1 ou l'ancien 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'

J'ai fait ce qui suit selon la suggestion de Karthik: 

D'abord activé le python virtuel

(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
2
hadi k

Votre virtualenv a une matplotlib locale installée. Après l'activation du sourcing, mettez à niveau matplotlib à l'aide de 

pip installer matplotlib == 2.1.0

ou

pip installer --upgrade matplotlib

7
plt.__version__
>> 3.0.0

c'est la version actuelle de matplotlib dans mon système. Dans le terminal, faites les commentaires suivants:

$source activate envname
$pip install --upgrade matplotlib

En invite python,

import matplotlib as plt
plt.__version__
>> 3.0.2

met à jour la version existante

0
Akshaya Natarajan