ImportError: Name „Multiarray“ kann nicht importiert werden

ImportError: Name „Multiarray“ kann nicht importiert werden

Ich habe Python3.6 wie beschrieben installiertHier:

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

Dann habe ich Numpy wie folgt installiert:

sudo apt-get install python3-numpy

Ich glaube, ich kann Numpy aus Python3.5 importieren, aber nicht aus 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'

Wie kann dieses Problem behoben werden?

Antwort1

Sie haben es wahrscheinlich numpynur für Ihr Python 3.5 installiert.

Anstatt die Installation numpyüber die Ubuntu-Repositorys durchzuführen, können Sie versuchen, zu installieren und zu verwenden pip.
Dies ist der Paketmanager von Python. Sie können ihn verwenden, um verschiedene Python-Bibliotheken wie zu installieren numpy.
Verwenden Sie ihn dann zur Installation numpyfür Ihr Python3.6.

Installieren pip:

Installieren Sie es pipmit dem folgenden Befehl:

apt install python-pip

Notiz:Möglicherweise erhalten Sie eine Permission deniedFehlermeldung. In diesem Fall stellen Sie Ihrem Befehl einfach sudobeispielsweise Folgendes voran:

sudo apt install python-pip

Geben Sie es dann in Ihr Terminal ein pip3.6, um zu überprüfen, ob Sie es richtig installiert haben. Es sollte Ihnen alle verfügbaren Parameter auflisten.

Von hier aus gibt es im Allgemeinen zwei Optionen.

Option 1 – numpyGlobal installieren

Speziell für Python 3.6 installieren numpy:

pip3.6 install numpy

Notiz:Wenn Sie erneut einen Berechtigungsfehler erhalten, stellen Sie Ihrem Befehl Folgendes voran sudo:

sudo pip3.6 install numpy

Die Ausgabe:

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

Notiz:Der Nachteil dieser Methode besteht darin, dass Sie numpyeine globale Installation durchführen, die später zu unerwünschten Effekten führen kann, beispielsweise zu Problemen mit unterschiedlichen Versionen.

Option 2 – Verwenden Sie eine virtuelle Umgebung:

Mit dieser Methode können Sie eine isolierte Python-Umgebung erstellen, sozusagen eine Sandbox, in der Sie Python-Pakete installieren können, ohne sich groß um Abhängigkeiten, Versionen und Berechtigungen kümmern zu müssen.

Zuerst müssen Sie das zum Erstellen virtueller Umgebungen erforderliche Modul installieren:

sudo pip3.6 install virtualenv

Überprüfen Sie noch einmal, ob die Installation erfolgreich war:

virtualenv --version

Sollte die Version ohne Fehlermeldungen drucken.

Erstellen Sie nun eine virtuelle Umgebung für Python 3.6 (zu Ihrer Information: Es gibt mehrere Möglichkeiten, dies zu erreichen):

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

z.B

virtualenv ~/Documents/numpy

Navigieren Sie zu diesem Verzeichnis. Darin sollten sich mehrere Verzeichnisse befinden. Wir suchen das binVerzeichnis.
Jetzt müssen Sie diese virtuelle Umgebung aktivieren:

source bin/activate

Der Name der virtuellen Umgebung sollte auf der linken Seite Ihres Terminals erscheinen, z. B.:

(numpy) user@hostname:numpy$

Es zeigt an, dass die virtuelle Umgebung derzeit aktiv ist.

Ok, jetzt müssen Sie Folgendes installieren numpy:

pip3.6 install numpy

Ausgabe:

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

Starten Sie nun Ihre Python-Shell und versuchen Sie, es zu importieren:

>>> import numpy
>>> 

Es sollten keine Fehler auftreten.
Sie können nun mit Ihrer Arbeit fortfahren.

Wenn Sie fertig sind, können Sie die virtuelle Umgebung deaktivieren. Geben Sie einfach Folgendes ein:

deactivate

Der Indikator auf der linken Seite sollte verschwunden sein.

Wenn in Ihrer virtuellen Umgebung ein Problem auftritt, löschen Sie einfach das Verzeichnis, das das Problem enthält, und beginnen Sie von vorne.

Notiz:Der Nachteil bei der Verwendung virtueller Umgebungen besteht darin, dass Sie diese immer aktivieren und deaktivieren müssen. Allerdings wird dadurch das Risiko, dass Ihre global installierten Bibliotheken und Einstellungen durcheinander geraten, drastisch reduziert.

Antwort2

Ich hatte genau das gleiche Problem. Ich habe Python 3.6 und Python 3.7 auf meinem Ubuntu-System installiert. Ich hatte Numpy mit Pip3 installiert. Ich bekam den gleichen Fehler, als ich versuchte, Numpy in Python 3.7 zu importieren.

Ich habe festgestellt, dass die folgende Zeile Nummer 1 in /user/bin/pip3 ist

#!/usr/bin/python3

und mein Python3 zeigte auf /usr/bin/python3.6

Folgendes hat bei mir funktioniert:

  1. Python3 aktualisieren

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/<python version> 1

Dadurch funktioniert pip3 für die gewünschte Version von Python3

  1. Deinstallieren Sie das Numpy, das für ältere Python3-Versionen installiert wurde

sudo pip3 uninstall numpy

  1. Installieren Sie Numpy für die gewünschte Version von Python3

sudo pip3 install numpy

Das hat funktioniert!

Antwort3

Ich hatte das gleiche Problem und habe diesen Fehler behoben, indem ich das numpyPaket wie folgt aktualisiert habe:

sudo pip install -U numpy


[NOTIZ]:

Wenn danach dieser Fehler auftritt:UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.

Führen Sie den folgenden Befehl aus:

sudo apt-get install python3-tk

verwandte Informationen