web-dev-qa-db-fra.com

ImportError: impossible d'importer le nom 'multiarray'

J'ai installé Python3.6 comme décrit ici :

Sudo add-apt-repository ppa:jonathonf/python-3.6
Sudo apt-get update
Sudo apt-get install python3.6

Puis j'ai installé numpy comme suit:

Sudo apt-get install python3-numpy

Je suppose que je peux importer numpy de Python3.5 mais pas de Python3.6

Python 3.6.5 (default, Mar 29 2018, 03:28:50) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/numpy/__init__.py", line 180, in <module>
    from . import add_newdocs
  File "/usr/lib/python3/dist-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/usr/lib/python3/dist-packages/numpy/lib/__init__.py", line 8, in <module>
    from .type_check import *
  File "/usr/lib/python3/dist-packages/numpy/lib/type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "/usr/lib/python3/dist-packages/numpy/core/__init__.py", line 14, in <module>
    from . import multiarray
ImportError: cannot import name 'multiarray'

Comment résoudre ce problème?

1
Billal Begueradj

numpyest probablement installé uniquement pour votre python3.5.

Au lieu d'installer numpyvia les référentiels Ubuntu, vous pouvez essayer d'installer et d'utiliser pipname__.
Ceci est le gestionnaire de paquets de python. Vous pouvez l’utiliser pour installer diverses bibliothèques python telles que numpyname__.
Puis utilisez-le pour installer numpypour votre python3.6.

Installation de pipname__:

Installez pipà l'aide de la commande suivante:

apt install python-pip

Remarque: Vous pouvez recevoir une erreur Permission denied. Dans ce cas, il suffit de préfixer votre commande avec Sudoname__, par exemple:

Sudo apt install python-pip

Ensuite, tapez votre terminal pip3.6 pour vérifier s'il est correctement installé. Il devrait vous lister tous ses paramètres disponibles.

Il y a généralement deux options à partir de là.

Option 1 - installer numpyglobalement

Installez numpyspécifiquement pour python3.6:

pip3.6 install numpy

Remarque: Encore une fois, si vous recevez une erreur d'autorisation, préfixez votre commande avec Sudoname__:

Sudo pip3.6 install numpy

Le résultat:

Collecting numpy
  Downloading https://files.pythonhosted.org/packages/71/90/ca61e203e0080a8cef7ac21eca199829fa8d997f7c4da3e985b49d0a107d/numpy-1.14.3-cp36-cp36m-manylinux1_x86_64.whl (12.2MB)
    100% |################################| 12.2MB 1.9MB/s 
Installing collected packages: numpy
Successfully installed numpy-1.14.3

Remarque: L'inconvénient de cette méthode est que vous avez numpyinstallé globalement, ce qui peut entraîner des effets indésirables à l'avenir, comme des problèmes avec différentes versions.

Option 2 - utiliser un environnement virtuel:

Cette méthode vous permet de créer un environnement Python isolé, un sandbox si vous voulez, où vous pouvez installer des packages python, sans vous soucier des dépendances, des versions et des autorisations.

Tout d'abord, vous devez installer le module, indispensable pour créer des environnements virtuels:

Sudo pip3.6 install virtualenv

Encore une fois, vérifiez si l'installation est réussie:

virtualenv --version

Devrait imprimer la version sans aucun message d'erreur.

Créez maintenant un environnement virtuel pour python3.6 (FYI - il existe plusieurs façons d’y parvenir):

virtualenv /directory/to/place/the/virtual/environment

par exemple.

virtualenv ~/Documents/numpy

Accédez à ce répertoire. Il devrait y avoir plusieurs répertoires à l'intérieur. Nous recherchons le répertoire binname__.
Vous devez maintenant activer cet environnement virtuel:

source bin/activate

Le nom de l’environnement virtuel doit apparaître à gauche de votre terminal, par exemple:

(numpy) user@hostname:numpy$

Cela indique que l'environnement virtuel est actuellement actif.

Ok, vous devez maintenant installer numpyname__:

pip3.6 install numpy

Sortie:

Collecting numpy
  Using cached https://files.pythonhosted.org/packages/71/90/ca61e203e0080a8cef7ac21eca199829fa8d997f7c4da3e985b49d0a107d/numpy-1.14.3-cp36-cp36m-manylinux1_x86_64.whl
Installing collected packages: numpy
Successfully installed numpy-1.14.3

Maintenant, démarrez votre Python Shell et essayez de l'importer:

>>> import numpy
>>> 

Il ne devrait y avoir aucune erreur.
Vous pouvez maintenant continuer votre travail.

Lorsque vous avez terminé, vous pouvez désactiver l'environnement virtuel. Il suffit de taper:

deactivate

L'indicateur sur le côté gauche devrait avoir disparu.

En cas de problème avec votre environnement virtuel, supprimez simplement le répertoire qui le contient et recommencez.

Remarque: L'inconvénient de l'utilisation d'environnements virtuels est que vous devez toujours les activer et les désactiver, mais cela réduit considérablement le nombre de modifications apportées aux paramètres et aux bibliothèques installées globalement.

2
haralambov