01. OS X 安裝 matplotlib 失敗

weixin_34402408發表於2017-05-31
4408343-822abe1090a0ad22.png
ModuleNotFoundError: No module named 'matplotlib'

說一下我的操作環境:我使用的是 MacBook,系統自帶 python2.7 ,我又安裝了 python3.6.1.

先說一下我的現象:
我在終端使用指令pip install matplotlib在終端裡顯示安裝 matplotlib 成功之後,使用import matplotlib指令呼叫該模組。
結果提示我沒有找到該模組:
ModuleNotFoundError: No module named 'matplotlib'
然而,我在終端使用指令pip list,結果顯示很明顯是安裝成功了的:

cycler (0.10.0)
functools32 (3.2.3.post2)
matplotlib (2.0.2) // ← matplotlib 明明已經安裝成功
mercurial (4.2)
numpy (1.12.1)
pip (9.0.1)
pyparsing (2.2.0)
python-dateutil (2.6.0)
pytz (2017.2)
setuptools (32.1.0)
six (1.10.0)
subprocess32 (3.2.7)
wheel (0.29.0)

然後,我發現,在終端裡使用

python
>>>import matplotlib

是成功的,然而,使用下面的

python3
>>>import matplotlib

就失敗了。

所以我們已經可以定位問題了:

matplotlib 安裝成功了,只是,是針對 python2 的環境安裝成功了。
但是對於 python3 的環境,安裝是失敗的。

我在 google 上查詢了 N 多資料都沒有一個很好的解決辦法,嘗試了很多方法,都失敗了。
網上很多解決方案說 python3 的 matplotlib 需要下載原始碼,自行編譯安裝,把安裝時候的 python 命令改成 python3 。
這樣的操作太複雜,如果你遇到了跟我一樣的情況,先別嘗試這種非常複雜的方法,繼續往下看,我的方法可能會幫到你。

那這究竟是為什麼呢?

在終端使用指令:pip uninstall matplotlib就可以發現原因了,解除安裝 matplotlib 的過程中可以發現: matplotlib 的安裝路徑是在 python2.7 下面的,而我們最終使用 import 語句的時候,用的是 python3.6 !

4408343-8c6ac3595d1cc6a8.png
matplotlib 的安裝路徑是在 python2.7 下面的

而 python3.6 是有單獨的 pip 的,python3 下是pip3
使用pip3 list可以看到,在 python3 下是沒有安裝 matplotlib 的。

因此,使用以下語句再安裝一次 matplotlib 就可以了:
pip3 install matplotlib

安裝成功之後,使用pip3 list語句檢視:

cycler (0.10.0)
matplotlib (2.0.2) // ← python3下的matplotlib已經安裝成功
numpy (1.12.1)
pip (9.0.1)
pygame (1.9.4.dev0)
pyparsing (2.2.0)
python-dateutil (2.6.0)
pytz (2017.2)
setuptools (28.8.0)
six (1.10.0)

此時再使用import matplotlib,可見已經呼叫成功了。

相關文章