
説明どおりに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
おそらくnumpy
python3.5のみをインストールしたのでしょう。
numpy
Ubuntu リポジトリからインストールする代わりに、 をインストールして使用することもできます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
グローバルにインストールする
numpy
python3.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を指していました
私の場合は次の方法がうまくいきました:
- Python3 をアップデート
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/<python version> 1
これにより、pip3が希望するバージョンのpython3で動作するようになります。
- 古いpython3用にインストールされたnumpyをアンインストールします
sudo pip3 uninstall numpy
- 希望するバージョンの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