HPC用户安装Python解决方案

目录

单位今年全新投入业务运行的高性能计算机 CMA-PI 中已安装多个版本的 Python 环境,包括 Python 2.7 / 3.6,anaconda 2/3。 但为了方便安装第三方 Python 库,还是需要在用户目录下安装 Python 环境。

下面介绍自建 Python 的解决方案。

Python 发行包

编译 Python 源码

CMA-PI 的操作系统是 RedHat,编译软件比原来的 IBM AIX 更方便,可以直接编译 Python 源码。 Python 源码编译基本采用默认配置即可。

PI 上编译 Python 3.7 的 configure 命令如下

./configure --prefix=$WORKDIR/usr/local/bin --enable-optimizations CXX=g++

其中,prefix 指定 Python 安装的位置。 可以模拟系统的 /usr/local 目录,在工作目录中创建相同的目录结构:

${WORKDIR}/usr/local/bin

PI 上已安装多种编译器,这里直接指定使用 g++ 编译。

安装后将 $WORKDIR/usr/local/bin 加入环境变量 PATH,即可使用编译的 Python 环境。

安装 Anaconda

Anaconda 支持非管理员账户安装,下载 Linux 安装包,在 CMA-PI 上运行,指定用户目录即可安装。

在安装最后一步,笔者一般不选择自动加载 Anaconda 环境,而是创建一个启动脚本,仅在需要时加载。

eval "$(/g11/wangdp/lang/python/anaconda3/bin/conda shell.bash hook)"

第三方 Python 包

Python 环境最复杂的就是安装依赖包。 HPC 无法直接连接外网,所以只能下载源码安装第三方 Python 包。

源码安装

在源码目录运行 pip3 install . 安装,如果提示缺少某个包,就现在缺失包的源码安装,通常这一个漫长的下载、安装过程。

通过代理使用 pip 安装

之前的文章中介绍 使用CCProxy搭建代理,可以通过代理使用 pip 安装第三方包。

配置环境变量,设置代理

export http_proxy=http://proxyUsername:proxyPassword@proxy.server.com:port
export https_proxy=http://proxyUsername:proxyPassword@proxy.server.com:port

这样就可以直接使用 pip 安装,省去下载源码的烦恼。

通过代理使用 conda 安装

使用上述代理也支持通过 conda 安装第三方包。

一站式解决方案:pyenv

注:笔者不再使用该方案,推荐直接安装 Anaconda

既然通过代理可以在线安装包,就可以考虑使用其它在线工具,比如致力于简化 Python 环境管理的 pyenv

pyenv 提供一键切换 Python 环境的功能,也可以与 virtualenv 结合,构建虚拟环境。

安装 pyenv 需要首先为 git 配置代理:

git config --global http.proxy http://proxyUsername:proxyPassword@proxy.server.com:port
git config --global https.proxy http://proxyUsername:proxyPassword@proxy.server.com:port

然后按照 pyenv 的文档安装即可。