在自己目录中安装python包 - refraction-ray/TH2-demos GitHub Wiki

方案一,pip法

1. 加载python

运行module load Python/2.7.9,或其他版本。

2. 安装包

以安装six包为例,下载相应的whl文件(或zip/tgz文件或文件夹),然后运行:

[myname@ln0 ~]$ pip install --user six-1.10.0.whl

就这么简单,关键是要使用--user选项。新的six包已经安装在$HOME/.local/lib/python2.7/site-packages中。

3. 使用

加载module后(module load Python/2.7.9),其实就跟平时一样用。import时会自动先搜索用户目录。比如输出six包版本和安装位置:

[myname@ln0 ~]$ python -c "import six; print(six.__version__); print(six.__file__)"
1.10.0
/HOME/myname/.local/lib/python2.7/site-packages/six.pyc

方案二,conda法

Conda的环境管理功能允许用户同时安装若干不同版本的Python以及不同版本的package,并能自由切换。以下展示非管理员用户如何在没有root权限的条件下创建环境并安装自己需要的python包。

1. 创建虚拟环境,并在其中安装pip

登录集群后先加载anaconda模块,如:module load anaconda/4.2.0

创建一个虚拟环境,比如名为"bigbio":

[myname@ln0 ~]$ conda create -n bigbio pip
... ...
# 根据提示操作

上述命令会同时安装pip,省很多麻烦

2. 安装

2.1. 进入该虚拟环境,命令提示符会有变化

[myname@ln0 ~]$ source activate bigbio 
(bigbio) [myname@ln0 ~]$

每次运行安装命令前,需确保处于虚拟环境中。

2.2 安装package

以numpy为例:

(bigbio) [myname@ln0 ~]$ pip install numpy
... ...

若想查看当前环境中的package及版本,用命令pip freeze

2.3 退出环境,命令行提示符也恢复原样

(bigbio) [myname@ln0 ~]$ source deactivate bigbio
[myname@ln0 ~]$

3. 使用

slurm作业脚本中调用相关python包前,也要先运行source activate bigbio激活环境,如:

[myname@ln0 ~]$ cat foo.sh
#!/bin/bash
source /WORK/app/toolshs/cnmodule.sh
module load anaconda/4.2.0  # 加载 anaconda
source activate bigbio      # 激活虚拟环境
python -c "import numpy;"   # 调用其中的package

[myname@ln0 ~]$ sbatch foo.sh # 提交作业

参考