HPC用户安装Python解决方案

目录

单位全年新投入业务运行的高性能计算机(PI-曙光)中系统管理员安装了多个版本的Python环境,包括 Python 2.7 / 3.6,anaconda 2/3。但为了方便安装第三方Python库,还是需要在用户目录下安装Python环境。下面介绍自建Python的解决方案。

Python发行包

编译Python源码

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

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

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

其中,prefix指定Python安装的位置,可以模拟系统的/usr/local目录,在工作目录中创建相同的目录结构。PI上加载了多种编译器,这里直接指定使用g++编译。

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

安装Anaconda

我没有尝试过,同事说可以下载安装包将Anaconda安装到用户账户。

第三方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安装,省去下载源码的烦恼。

一站式解决方案:pyenv

既然通过代理可以在线安装包,就可以考虑使用其它在线工具,比如致力于简化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 的文档安装即可。