前言:
2015年10月底开始入手学习Python,一直纠结于用Python2还是Python3。2008年底Python3.0.0发布,到现在已经7年了,Python3在逐渐取代Python2的低位。我在学Python基础语法的时候安装的Python3.4.3,看的是小甲鱼的视频,用的书是《Python基础教程》。
最近在用Python做仿真,需要安装Numpy、SciPy、MatPlotLib等科学计算的库,朋友推荐直接下载一个Python(x,y),这个软件包含了所有科学计算用到库,免去了单独寻找安装各个库的烦恼,觉得单独安装各个库比较麻烦的话可以直接下载Python(x,y),但是目前最新版的Python(x,y)还不支持Python3。,安装包有800多M.
因为我的两个朋友用的Python(x,y),为了一同完成导师布置的任务,我不得不换成Python2.7.9,但是又不想安装Python(x,y),他有100多个模块,绝大多数对我来说都是没有用的,所以我选择用什么模块安装什么模块。接下来介绍如何配置Numpy,SciPy和MatplotLib。
Python安装完Numpy,SciPy和MatplotLib后,可以成为非常犀利的科研利器。网上关于这三个库的安装都写得非常不错,但是大部分人遇到的问题并不是如何安装,而是安装好后因为配置不当,在使用时总会出现import xxx error之类的错误。我也是自己摸索了很久才发现如何去正确配置的。
一、安装Python2.7.9
推荐刚入手的朋友直接安装Python3.4,我是由于要和别人合作才被迫按章Python2的,现在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文件夹下。然后执行:
pip install wheel
如果没有配置环境变量,需要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下执行:
pip install six-1.10.0-py2.py3-none-any.whl
pip install python_dateutil-2.4.2-py2.py3-none-any.whl
pip install pyparsing-2.0.3-py2-none-any.whl
如果提示错误,可以使用如下命令:
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 from mpl_toolkits.mplot3d import axes3d 2 import matplotlib.pyplot as plt 3 from matplotlib import cm 4 5 fig = plt.figure() 6 ax = fig.gca(projection=‘3d‘) 7 X, Y, Z = axes3d.get_test_data(0.05) 8 ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3) 9 cset = ax.contour(X, Y, Z, zdir=‘z‘, offset=-100, cmap=cm.coolwarm) 10 cset = ax.contour(X, Y, Z, zdir=‘x‘, offset=-40, cmap=cm.coolwarm) 11 cset = ax.contour(X, Y, Z, zdir=‘y‘, offset=40, cmap=cm.coolwarm) 12 13 ax.set_xlabel(‘X‘) 14 ax.set_xlim(-40, 40) 15 ax.set_ylabel(‘Y‘) 16 ax.set_ylim(-40, 40) 17 ax.set_zlabel(‘Z‘) 18 ax.set_zlim(-100, 100) 19 20 plt.show()