Numpy、SciPy、MatPlotLib在Python2.7.9下的安装与配置
前言:
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()