
我按照描述安裝了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導入numpy
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
和使用pip
.
這是python的套件管理器。您可以使用它來安裝各種 python 庫,例如numpy
.
然後用它來安裝numpy
你的python3.6。
安裝 pip
:
pip
使用以下命令安裝:
apt install python-pip
筆記:您可能會收到Permission denied
錯誤。在這種情況下,只需在命令前面加上sudo
例如:
sudo apt install python-pip
然後在終端機中輸入pip3.6
以檢查是否已正確安裝。它應該列出所有可用的參數。
這裡通常有兩種選擇。
選項 1 -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
全域安裝了,這可能會在將來的某個時候產生不良影響,例如不同版本的問題。
選項 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 shell 並嘗試導入它:
>>> 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