服务器python环境使用说明

服务器python环境使用说明

conda虚拟环境

conda是python包管理和环境管理的基本工具,可以在不同的虚拟环境中安装不同版本的python解释器,不同版本的包,conda可以自动检测包之间的依赖关系。

1
conda create -n my-env python=3.7

上面这一行命令建立了一个python=3.7,名字为my-env的虚拟环境,建立好后,可以通过

1
conda activate my-env

来激活新建立的虚拟环境,此时python解释器,包的版本都是my-env环境中指定的版本(这是conda通过改变环境变量做到的),输入

1
conda deactivate

可以退出当前虚拟环境。

在配置完项目所需的虚拟环境后,可以将项目环境迁移至另一台机器。环境潜移需要保证两台机器的系统相同,对于liunx系统的服务器来说,需要在自己的linux虚拟机上建立一个虚拟环境,安装配置好自己所需要的包。在配置好了环境后,可以安装conda-pack命令行工具,以打包conda环境,conda-pack可以通过conda-forge源进行安装。

1
conda install -c conda-forge conda-pack

安装好后

1
conda pack -n my-env -p my-env.tar.gz

命令将my-env虚拟环境压缩成my-env.tar.gz文件,将这个文件上传到服务器上,在/opt/anaconda3/envs/目录下新建my-env目录,将my-env.tar.gz在新建的目录中解压,conda就可以检测到这个虚拟环境了(这一步需要管理员权限,如果想建立一个只有自己才能用的环境,可以在个人目录下重新安装anaconda3)。

在服务器上第一次使用conda时,需要执行conda初始化脚本:

1
/opt/anaconda3/bin/conda init

此时conda会在用户家目录下~/.bashrc中写入conda的初始化设置,此后每次打开shell后都会自动运行conda的初始化过程,之后就可以顺利使用conda了。

命令提交

slurm脚本

在slurm脚本中可以在执行命令前先激活对应的虚拟环境,后面节点用来计算的python的解释器就是对应虚拟环境中的python解释器了。

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
#SBATCH -J mt-carlo
#SBATCH -p batch
#SBATCH -N 1
#SBATCH -o file.out
#SBATCH -e file.error
#SBATCH --ntasks-per-node=50

source /opt/anaconda3/envs/phonon/bin/activate
mpiexec -n 50 python ./run.py

命令行

直接conda avtivate my-env激活虚拟环境