here の説明に従って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'
この問題を修正する方法は?
おそらくpython3.5にのみnumpy
がインストールされています。
Ubuntuリポジトリを介してnumpy
をインストールする代わりに、pip
をインストールして使用することもできます。
これはpythonのパッケージマネージャーです。これを使用して、numpy
のようなさまざまなpythonライブラリをインストールできます。
それを使用して、python3.6のnumpy
をインストールします。
pip
のインストール:次のコマンドでpip
をインストールします。
apt install python-pip
注:Permission denied
エラーが表示される場合があります。この場合、コマンドの前にSudo
を付けるだけです:例:
Sudo apt install python-pip
次に、端末にpip3.6
と入力して、正しくインストールされているかどうかを確認します。使用可能なすべてのパラメーターが一覧表示されます。
通常、ここから2つのオプションがあります。
numpy
をグローバルにインストールPython3.6専用のnumpy
をインストールします。
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
がグローバルにインストールされていることです。これにより、異なるバージョンでのトラブルなど、将来のある時点で望ましくない影響が生じる可能性があります。
この方法を使用すると、依存関係、バージョン、権限をあまり気にせずに、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$
仮想環境が現在アクティブであることを示します。
OK、今すぐインストールする必要があります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
左側のインジケータが消えているはずです。
仮想環境で何か問題が発生した場合は、それを含むディレクトリを削除して最初からやり直してください。
注:仮想環境を使用する場合の欠点は、常にアクティブ化および非アクティブ化する必要があることですが、グローバルにインストールされたライブラリと設定を台無しにする変更を大幅に削減します。
私は同じ問題を抱えていました。次のようにnumpy
パッケージを更新することでこのエラーを修正しました。
Sudo pip install -U numpy
[NOTE]:
その後、次のエラーが発生した場合:UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
次のコマンドを実行します。
Sudo apt-get install python3-tk