跳转至

Python离线环境部署

由于咱们计算平台是离线的,所以搭建离线环境用于计算非常有必要。
咱们这里使用Anaconda来做虚拟环境管理。

环境准备

  • 一台可联网的计算机,一般为自己用的PC
  • 设备上已经安装好Miniconda/Anaconda
  • 已经用conda创建了自己需要的env
# 创建并激活环境
conda create -n your_env_name python=3.7

# 查看已有的虚拟环境
conda env list

# 安装需要的包
conda activate your_env_name
pip install xxx
conda install xxx

检查集群上各依赖程序的版本

襄阳集群上已经安装了各种程序,使用module命令查看版本

module avail

# cuda
apps/cuda/11.2
apps/cuda/11.3
apps/cuda/11.4.4
apps/cuda/11.6

# cudnn
apps/cudnn/8.1.1
apps/cudnn/8.2.0
apps/cudnn/8.2.2

方法一:先下载所需的包再离线安装

思路:在自己本机(可联网,需为Linux)上下载好所需的包,requirements.txt文件记录env所需的包。再利用这两部分文件,把这些包安装到已有的离线env中。

这种方法可用于安装部分新增的包。

Note

  1. 自己环境中使用 CUDA 版本与计算平台中保持一致
  2. pip 缓存的包为二进制格式,所以要求移植前后必须有相同的OS,且计算平台OS为CentOS 7.6
  3. 移植前为windows开发的,可先用在本机先创建一个linux虚拟机,在此虚拟机中操作

联网的PC端

1. 将依赖的包记录到文件

# 激活环境
conda activate your_env_name

# 记录所有依赖的包,文件格式: <package>==<version>
pip freeze > requirements.txt

2. 下载依赖包到指定目录

# 使用清华源将requirements.txt记录的包下载到c:\pipPackages目录下。
pip download -d c:\pipPackages -r requirements.txt \
 -i https://pypi.tuna.tsinghua.edu.cn/simple/

# 阿里云源:https://mirrors.aliyun.com/pypi/simple/
# 清华源:https://pypi.tuna.tsinghua.edu.cn/simple/
# 中科大源:https://pypi.mirrors.ustc.edu.cn/simple/
# 华科大源:https://mirrors.hust.edu.cn/pypi/web/simple

离线的计算平台

3. 上传到离线计算平台

将此两部分文件上传到计算平台上自己的家目录中,记录存储路径。

4. 安装指定包

比如上传的文件在 ~/requirements.txt , ~/pipPackages

# 如果之前没有此env,需先创建,如果已经存在就不需要此步
conda create -n your_env_name

# 激活环境
conda activate your_env_name

# 根据requirements.txt用离线包安装需要的包
pip install --no-index -r ~/requirements.txt --find-links=~/pipPackages
# 或
pip install --no-index -r ~/requirements.txt -f ~/pipPackages

方法二:将envs打包移植离线计算平台

思路:在自己本机(必须为CentOS Linux 7)上部署一个完全一样的环境,然后将这个环境整体移植到集群上运行。

Note

  1. 自己环境中使用 CUDA 版本与计算平台中保持一致
  2. 此种方法只能打包 conda install 安装的包
  3. conda pack 移植的两边必须有相同的OS,且计算平台OS为CentOS 7.6

联网的PC端

1. 安装conda打包工具

conda install conda-pack

2. 打包虚拟环境

使用conda pack命令来打包环境,命令先检索虚拟环境的依赖包,再开始打包压缩,时间长短取决于包的大小,依赖的包越大时间越长。完成后在cmd当前目录下生成your_env_name.tar.gz文件。

conda pack -n your_env_name -o your_env_name.tar.gz

打包虚拟环境
打包虚拟环境结果

离线的计算平台

3. 上传至计算平台

把刚才生成的 your_env_name.tar.gz上传集群自己的家目录中,记录存放路径。

4. 导入到计算平台中的Anaconda

配置环境中的Anaconda,使用自己定义的envs目录比如~/conda/envs。
把 your_env_name.tar.gz 解压至自己定义的envs项目目录即可。

# 创建刚才的虚拟环境的同名文件夹
mkdir ~/conda/envs/your_env_name

# 确保文件夹的属性可执行
chmod 755 -R ~/conda/envs/your_env_name

# 将刚才上传的打包文件 your_env_name.tar.gz 解压至此目录
tar -xzf your_env_name.tar.gz -C ~/conda/envs/your_env_name

# 查看可用环境,发现已显示刚解压的环境
conda env list

# 激活此环境,检查已经安装的包
conda activate your_env_name
conda list

结果对比

之前在本机中: Windows环境中

导入到计算平台后: 导入到计算平台后

本文阅读量  次    本站总访问量  次