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
- 自己环境中使用 CUDA 版本与计算平台中保持一致
- pip 缓存的包为二进制格式,所以要求移植前后必须有相同的OS,且计算平台OS为CentOS 7.6
- 移植前为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
- 自己环境中使用 CUDA 版本与计算平台中保持一致
- 此种方法只能打包 conda install 安装的包
- 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
结果对比¶
之前在本机中:
导入到计算平台后: