web-dev-qa-db-fra.com

ImportError: Aucun module nommé 'matplotlib.externals'

Quand je lance file1.py en utilisant seaborn.heatmap en python3 sur Ubuntu 16.04,

Je reçois le message d'erreur:

Traceback (most recent call last):
  File "file1.py", line 19, in <module>
    import seaborn as sns
ImportError: No module named 'seaborn'

Ensuite, je lance la commande $ Sudo apt install python3-seaborn dans le terminal:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libdsdp-5.8gf libglade2-0 libglpk36 python-cvxopt python-cycler
  python-decorator python-glade2 python-imaging python-jdcal python-joblib
  python-numexpr python-openpyxl python-pandas python-pandas-lib python-patsy
  python-py python-pytest python-scipy python-statsmodels
  python-statsmodels-lib python-tables python-tables-lib
Use 'Sudo apt autoremove' to remove them.
The following additional packages will be installed:
  python3-matplotlib
Suggested packages:
  ffmpeg ipython3 python-matplotlib-doc python3-cairocffi python3-gobject
  python3-nose python3-pyqt4 python3-sip python3-tornado ttf-staypuft
The following NEW packages will be installed:
  python3-matplotlib python3-seaborn
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/3,999 kB of archives.
After this operation, 13.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Selecting previously unselected package python3-matplotlib.
(Reading database ... 378283 files and directories currently installed.)
Preparing to unpack .../python3-matplotlib_1.5.1-1ubuntu1_AMD64.deb ...
Unpacking python3-matplotlib (1.5.1-1ubuntu1) ...
Selecting previously unselected package python3-seaborn.
Preparing to unpack .../python3-seaborn_0.6.0-1_all.deb ...
Unpacking python3-seaborn (0.6.0-1) ...
Setting up python3-matplotlib (1.5.1-1ubuntu1) ...
Setting up python3-seaborn (0.6.0-1) ...

Maintenant, file1.py peut être exécuté avec succès, alors que je lance file2.py en utilisant Axes3D en python3, Je reçois le message d'erreur suivant:

Traceback (most recent call last):
  File "file2.py", line 29, in <module>
    from mpl_toolkits.mplot3d import Axes3D
  File "/usr/lib/python3/dist-packages/mpl_toolkits/mplot3d/__init__.py", line 4, in <module>
    from matplotlib.externals import six
ImportError: No module named 'matplotlib.externals'

Je ne peux exécuter que $ Sudo apt remove python3-matplotlib avec fichier2.py:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  fonts-lyx libjs-jquery-ui python-matplotlib-data python-tables-data python3-cycler
  python3-dateutil python3-decorator python3-numexpr python3-pandas python3-pandas-lib python3-patsy
  python3-scipy python3-tables python3-tables-lib python3-tz
Use 'Sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  python3-matplotlib python3-seaborn
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
After this operation, 13.8 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 375396 files and directories currently installed.)
Removing python3-seaborn (0.6.0-1) ...
Removing python3-matplotlib (1.5.1-1ubuntu1) ...

Cependant, python3-seaborn est également supprimé en même temps. Comment puis-je résoudre ce problème? Merci d'avance!

6
Andy

Sudo apt-get remove python3-matplotlib

UPD: Puis installez-le en utilisant le style pip- conventionnel: Sudo pip3 install matplotlib

En outre, @Andy a remarqué que le script supprime non seulement matplotlib mais également seaborn. Vous devrez donc probablement l’installer à l’aide de pip.


J'ai essayé de faire ce que @ Bodhi94 avait suggéré mais cela n'a pas abouti. Ensuite, j'ai essayé de supprimer python3-matplotlib de Ubuntu et cela a fonctionné.

Y at-il des conflits peuvent survenir? S'il vous plaît, laissez-moi si vous en avez.

5
Vladimir Yashin

Essayez de réinstaller matplotlib en utilisant la commande suivante. 

 Sudo pip install matplotlib --upgrade --ignore-installed six
4
Bodhi94

J'ai remplacé dans tous les fichiers Python concernés comme suit: Dès que j'ai reçu le message ImportError: aucun module nommé 'matplotlib.externals'

J'ai fait: - Sudo nano/usr/lib/python3/dist-packages/mpl_toolkits/mplot3d / init . Py - et je remplace: "de matplotlib.externals import six "par" importer six "

Jusqu'à ce qu'il reste une erreur.

A travaillé parfaitement depuis

2
SimonR