Python 基本科学计算工具链环境搭建

Python上的科学计算工具链也就那几个著名的包Numpy、Scipy、Matplotlib。在Unix-like的操作系统上,得益于操作系统自带的包管理器,这几个包轻轻松松就能安装上。但在Windows环境下就相当困难。以前的文章中讨论过如何使用预编译好的whl包在pip包管理器中安装。提供whl包下载的网站上的一句

Install numpy+mkl before installing scipy.

https://www.lfd.uci.edu/~gohlke/pythonlibs/

很容易让大家产生误解:scipy依赖mkl。然而并不是,mkl全称Intel (M)ath (K)ernel (L)ibrary。在Intel处理器上进行数学运算将会有相当显著的加速,下图是Intel官方所做的benchmark:

可以看到Intel的黑科技是多么的厉害。因此mkl只是scipy在Intel处理器上做加速优化时才需要的一个包(这么厉害的东西,理论上当然是要钱的)。那么同理,如果要在AMD处理器上做同样的加速优化就需要ACML(AMD Core Math Library ),然而遗憾的是,目前还没有人成功合成numpy+acml这种东西;如果想要在异构平台上做加速优化,那就要OpenCL或者OpenBLAS(由中国科学院软件研究所负责维护)之类的开源数学库。但优化说到底只是一个可选选项,完全可以不要优化嘛。

Visual C++CPython
14.03.5, 3.6
10.0
3.3, 3.4
9.02.6, 2.7, 3.0, 3.1, 3.2

谈完了mkl的问题,接下来就是如何通过pip简单地安装numpy、scipy、matplotlib等等的包。这个问题的核心就在于如何安装好C/C++编译器,需要注意在Windows平台上,不同的Python版本需要不同的编译器版本。这里值得重点强调的是:如果你无意进行C/C++开发,那么C/C++ IDE你并不需要安装,只需要Build Tools(中文:生成工具)。

这里以Python3.6为例,在微软网站上下载VC++ 14.0的生成工具,按默认配置安装即可。在这之后就可以用pip非常简单地安装上numpy、scipy等等需要编译的包。当然这么安装的包,速度非常感人,因此这种安装方式只适合开发环境,而不适合生产环境。

留下评论