前言:
Python安裝完Numpy,SciPy和MatplotLib后,可以成為非常犀利的科研利器。網上關於這三個庫的安裝都寫得非常不錯,但是大部分人遇到的問題並不是如何安裝,而是安裝好后因為配置不當,在使用時總會出現import xxx error之類的錯誤。
一、安裝Python2.7.9
推薦剛入手的朋友直接安裝Python3.4,現在Numpy,SciPy和MatplotLib已經支持Python3.4了,但是不要裝最新版本,因為第三方提供的庫更新沒有那么快。
- Python下載地址:https://www.python.org/downloads/
二、安裝Numpy、SciPy、MatPlotLib
下載Numpy,SciPy,MatplotLib這三個庫的exe,注意,這里用的是exe,因為MatplotLib的使用需要以Numpy的支持,所以最好先裝NumPy再裝MatplotLib。下載地址:
- NumPy: http://sourceforge.net/projects/numpy/files/NumPy/1.9.2/
- SciPy: http://sourceforge.net/projects/scipy/files/scipy/0.15.1/
- MatPlotLib: http://matplotlib.org/downloads.html
需要注意注意根據自己的系統選擇win32還是win64,並且注意要和Python2.7.9對應,當然如果是安裝的Python3.4就要下載支持3.4的Numpy、SciPy、MatPlotLib。安裝的時候會自動找到Python的安裝路徑,一路Next就行了。默認安裝在\Python27\Lib\site-packages
三、配置Numpy,SciPy,MatplotLib
只安裝這三個模塊還不能實現繪圖的功能,在Python的IDLE中輸入:import matplotlib 會提示錯誤。錯誤原因有三個:
- ImportError: matplotlib requires dateutil
- ImportError: matplotlib requires pyparsing
- No module name six
在解決這三個問題之前,我們先要安裝wheel (不然無法使用pip命令安裝.whl文件)。使用pip命令建議先將pip.exe的路徑添加到環境變量中(安裝完可以再將pip在環境變量中的路徑刪除),pip安裝在\Python27\Scripts文件夾下。如果沒有配置環境變量,需要cd到\Python27\Scripts文件夾下執行下面那條命令。這時pip會自動在網絡上下載安裝wheel:
python pip.exe install wheel
安裝完wheel之后我們解決那三個問題:
打開這個鏈接:http://www.lfd.uci.edu/~gohlke/pythonlibs/#six 根據自己的系統和Python版本下載:(可以在網頁上按ctrl + F,輸入six、dateutil、pyparsing查找位置)
- six-1.10.0-py2.py3-none-any.whl
- python_dateutil-2.4.2-py2.py3-none-any.whl
- pyparsing-2.0.3-py2-none-any.whl
然后將這三個.whl文件拷貝到\Python27\Scripts文件夾下,不拷貝的話需要在安裝時輸入文件所在的絕對路徑,建議先拷貝過來,等安裝完成后再刪除。在cmd下執行:
python pip.exe install six-1.10.0-py2.py3-none-any.whl
python pip.exe install python_dateutil-2.4.2-py2.py3-none-any.whl
python pip.exe install pyparsing-2.0.3-py2-none-any.whl
這里我們就配置好Numpy,SciPy,MatplotLib,附一段測試代碼:
1 import numpy as np 2 import matplotlib.pyplot as plt 3 4 x = np.linspace(0, 10, 1000) 5 y = np.sin(x) 6 z = np.cos(x**2) 7 8 plt.figure(figsize=(8,4)) 9 plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2) 10 plt.plot(x,z,"b--",label="$cos(x^2)$") 11 plt.xlabel("Time(s)") 12 plt.ylabel("Volt") 13 plt.title("PyPlot First Example") 14 plt.ylim(-1.2,1.2) 15 plt.legend() 16 plt.show()