Python中Numpy、SciPy、MatPlotLib安装与配置

Python中Numpy、SciPy、MatPlotLib安装与配置


Python安装完Numpy,SciPy和MatplotLib后,可以成为非常犀利的科研利器。网上关于这三个库的安装都写得非常不错,但是大部分人遇到的问题并不是如何安装,而是安装好后因为配置不当,在使用时总会出现import xxx error之类的错误。我也是自己摸索了很久才发现如何去正确配置的。下面就详细说下安装和配置的过程。

1.安装Python,这里选择2.7还是3.4都行,不过推荐使用2.7,毕竟现在的教程大部分还是基于2.7的,3.4跟2.7的语法还是略有不同,为了避免语法错误的麻烦,还是推荐大家使用2.7。下载地址为:https://www.python.org/downloads/

2.下载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

其中NumPy和SciPy没有32和64位的区别,MatPlotLib需要根据自己的系统选择32位和64位的。再次提醒,这三个库一定都要下载对应版本的exe。下载完成后一次安装就是了,他们会自动找到你之前安装好的Python所在的路径的,一路Next到底就行了。

3.在第2步安装完成后,可以在MatPlotLib的Examples页面(http://matplotlib.org/examples/index.html)Copy代码运行,发现一定会出错。这里出的错,大体有三个:

•Import Error: matplotlib requires dateutil
•Import Error: matplotlib requires pyparsing
•No module name six

这边我遇到的是第一种情况的错误Import Error: matplotlib requires dateutil

下面是这种情况下的解决方法:

1、安装easy_install

在文件夹C:\Python27下新建脚本:

from urllib import urlopen
data = urlopen('http://peak.telecommunity.com/dist/ez_setup.py')
with open('ez_setup.py', 'wb') as f:
f.write(data.read())

运行脚本可以将easy_install下载下来。
这里写图片描述

2、安装pip
切换工作目录后使用easy_install来安装pip
这里写图片描述

3、下载dateutil和pyparsing

下载链接

声明:这个网站上有丰富的资源可以收藏(文件是以.whl为后缀名的)

4、把pip和easy_install加入到环境变量中

在系统环境变量path中加入C:\Python27\Scripts目录名,这样才可以使用pip来安装.whl文件

5、使用pip来安装dateutil和pyparsing

功能测试:
代码如下:

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import cm

fig = plt.figure()
ax = fig.gca(projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)
ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3)
cset = ax.contour(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='x', offset=-40, cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='y', offset=40, cmap=cm.coolwarm)

ax.set_xlabel('X')
ax.set_xlim(-40, 40)
ax.set_ylabel('Y')
ax.set_ylim(-40, 40)
ax.set_zlabel('Z')
ax.set_zlim(-100, 100)

plt.show()

至此,大功告成。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值