ImportError: 名前 'multiarray' をインポートできません

ImportError: 名前 'multiarray' をインポートできません

説明どおりにPython3.6をインストールしましたここ:

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

次に、numpy を次のようにインストールしました。

sudo apt-get install python3-numpy

Python3.5からはnumpyをインポートできると思いますが、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'

この問題を解決するにはどうすればよいですか?

答え1

おそらくnumpypython3.5のみをインストールしたのでしょう。

numpyUbuntu リポジトリからインストールする代わりに、 をインストールして使用することもできますpip
これは Python のパッケージ マネージャーです。これを使用して、 などのさまざまな Python ライブラリをインストールできますnumpy。次に、これを使用してpython3.6 を
インストールします。numpy

インストール中 pip:

pip次のコマンドでインストールします。

apt install python-pip

注記:エラーが表示される場合がありますPermission denied。その場合は、コマンドの前に次のコードを追加してくださいsudo:

sudo apt install python-pip

次に、ターミナルに入力して、pip3.6正しくインストールされているかどうかを確認します。使用可能なすべてのパラメータがリストされるはずです。

ここから一般的に 2 つのオプションがあります。

オプション 1 -numpyグローバルにインストールする

numpypython3.6専用にインストールします:

pip3.6 install numpy

注記:再度、権限エラーが発生した場合は、コマンドの前に次の語を付けますsudo:

sudo pip3.6 install numpy

出力:

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

注記:この方法の欠点は、numpyグローバルにインストールされるため、異なるバージョンによる問題など、将来のある時点で望ましくない影響が生じる可能性があることです。

オプション 2 - 仮想環境を使用する:

この方法を使用すると、依存関係、バージョン、権限をあまり気にせずに Python パッケージをインストールできる、分離された Python 環境 (いわゆるサンドボックス) を作成できます。

まず、仮想環境を作成するために必要なモジュールをインストールする必要があります。

sudo pip3.6 install virtualenv

再度、インストールが成功したかどうかを確認します。

virtualenv --version

エラー メッセージなしでバージョンを印刷する必要があります。

次に、python3.6 用の仮想環境を作成します (参考までに、これを実現する方法は複数あります)。

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

例えば

virtualenv ~/Documents/numpy

そのディレクトリに移動します。その中にはいくつかのディレクトリがあるはずです。ディレクトリを探しますbin
次に、その仮想環境をアクティブ化する必要があります。

source bin/activate

仮想環境の名前はターミナルの左側に表示されます。例:

(numpy) user@hostname:numpy$

仮想環境が現在アクティブであることを示します。

さて、次にインストールする必要がありますnumpy:

pip3.6 install numpy

出力:

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

次に、Python シェルを起動してインポートしてみます。

>>> import numpy
>>> 

エラーは発生しないはずです。
作業を続行できます。

完了したら、仮想環境を非アクティブ化できます。次のように入力するだけです。

deactivate

左側のインジケーターは消えているはずです。

仮想環境で問題が発生した場合は、その問題を含むディレクトリを削除して最初からやり直してください。

注記:仮想環境を使用することの欠点は、常に仮想環境をアクティブ化および非アクティブ化する必要があることですが、グローバルにインストールされたライブラリや設定が混乱する可能性は大幅に減ります。

答え2

私もまったく同じ問題を抱えていました。Ubuntu システムに python3.6 と python3.7 をインストールしています。pip3 を使用して numpy をインストールしました。python3.7 で numpy をインポートしようとしたときに、同じエラーが発生しました。

/user/bin/pip3の1行目は次のようになっていることに気づいた。

#!/usr/bin/python3

そして私のpython3は/usr/bin/python3.6を指していました

私の場合は次の方法がうまくいきました:

  1. Python3 をアップデート

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

これにより、pip3が希望するバージョンのpython3で動作するようになります。

  1. 古いpython3用にインストールされたnumpyをアンインストールします

sudo pip3 uninstall numpy

  1. 希望するバージョンのpython3用のnumpyをインストールします

sudo pip3 install numpy

うまくいきました!

答え3

私も同じ問題を抱えていましたが、numpy次のようにパッケージを更新することでこのエラーを修正しました。

sudo pip install -U numpy


[注記]:

その後、このエラーが発生した場合:UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.

次のコマンドを実行します。

sudo apt-get install python3-tk

関連情報