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 的文档安装即可。