离线迁移深度学习环境


前言

为了成功地将Python环境从一台机器迁移至另一台机器,应确保目标系统与源系统具有兼容的操作系统版本,并满足环境中所有包和依赖的二进制兼容性要求。迁移过程中,目标机器上必须预装Anaconda或Miniconda,因为这将为恢复和管理迁移的Python环境提供必要的安装基础和工具。
可通过多种方法来打包或复制环境,

  1. 使用conda-pack打包整个conda环境
  2. 通过pip freeze > requirements.txt来导出pip环境中的包并在目标系统中重新安装
  3. 使用environment.yml文件来定义conda环境并通过该环境定义创建新的环境(网上有说有用的,我没用过)
    提示:以下是本篇文章正文内容,下面案例可供参考

一、打包环境

  1. conda-pack打包
    使用conda-pack工具打包整个conda环境,可以按照以下步骤进行操作:
    ① 在源系统上运行以下命令:conda install conda-pack,以确保conda-pack工具已安装。
    ② 在源系统上运行命令:conda pack -n <environment_name> -o <output_filename>.tar.gz,其中<environment_name>是您要打包的环境名称,<output_filename>是打包结果的输出文件名。
    ③ 将生成的tar.gz文件传输到目标系统中。
  2. 如果选择使用pip来管理包依赖,可以按照以下步骤进行操作:
    ①利用pip将服务运行所依赖的包下载到本地,拷贝到目标服务器进行离线安装:pip list --format=freeze > requirements.txt
    此处不使用pip freeze命令是因为pip freeze导出的文件会出现@ file://的问题,导致后续下载依赖包的时候出现问题。
    ②下载依赖包到指定目录pip download -r requirements.txt -d "/home/admin/packs" -i https://pypi.tuna.tsinghua.edu.cn/simple
    ③将生成的packs依赖包和 requirements.txt传输到目标系统中。
  3. 如果选择使用environment.yml文件来定义conda环境并创建新的环境,可以按照以下步骤进行操作:
    ①在源系统上运行命令:conda env export --name <environment_name> > environment.yml,导出当前环境的配置信息到一个YAML文件中。
    ②将生成的environment.yml文件传输到目标系统中。
    ③在目标系统的命令行中,运行命令:conda env create -f environment.yml,根据YAML文件创建新的conda环境。

二、安装ananconda

  1. 下载Anaconda的安装包
    在官网上查找自己需要的版本:https://repo.anaconda.com/archive/
  2. 进行安装包安装 bash Anaconda3-2022.10-Linux-x86_64.sh
    此时显示的是Anaconda的信息,并且会出现More,继续按Enter(一直按住Enter就行)按照提示进行enter键入或yes输入,一路完成安装,
    选择安装目录,可选择默认或自定义
    此处将安装目录修改为
    [/root/anaconda3] >>> /home/anaconda3
  3. 对环境变量进行修改
    命令:vi ~/.bashrc
  4. 进行验证
    命令:(base) [root@dap07 anaconda3]# conda env list
    出现base,则表示anaconda安装成功,或者输入conda -V 会出现已安装好anaconda的版本号
  5. conda 常用的命令
    退出虚拟环境:conda deactivate
    删除虚拟环境:conda remove -n xxx --all
    拷贝已有的虚拟环境:conda create -n new_env --clone base_env

三、解压并安装虚拟环境(假设我已经新建了一个test 虚拟环境)

  1. 如果选择使用使用conda-pack工具打包虚拟环境,可以按照以下步骤进行虚拟环境迁移:
    ①将打包好的压缩包,解压到,test虚拟环境路径下:tar -zxvf pytorch_py39.tar.gz -C /homet/anaconda3/envs/test/
    ②解压完成,激活新的环境conda activate test(如果这步报错,执行③)
    source activate 再执行source deactivate 再执行conda activate test
  2. 如果选择使用pip来管理包依赖,可以按照以下步骤进行虚拟环境迁移:
    ①切换到test虚拟环境下 conda activate test
    ②pip install -U --no-index --find-links=./packs -r requirements.txt
若出现Cannot uninstall 'xxxx'. It is a distutils installed project and thus we cannot accurately det...(xxx是某package的名称),使用如下命令进行解决:

pip install -U --ignore-installed --no-index --find-links=./packs xxx

  1. 如果选择使用environment.yml文件,可以安装以下步骤进行虚拟环境迁移
    ①conda env create -f environment.yml

四、遇到的一些问题

  • 问题使用conda create -n 虚拟环境名字 --offline 创建环境后,发现envs的环境目录下只有conda-meta,
    解决方案:首先建议先把这个环境删除, conda remove -n 虚拟环境名字 --all,然后重新创建环境,创建时候,带上python的版本,如果不知道该带什么python版本可以先输入python,看一看anaconda默认带的环境是什么。然后重新创建新虚拟环境。
   conda create -n test  --offline  python=3.8   #test为创建的虚拟环境名称
  • 如果虚拟环境中,默认的环境是python=3.10,但是想要换一个python=3.9的版本怎么办?(网上的答案,没试过。)
    解决方案:下载对应版本的安装包:https://www.python.org/downloads/ 然后拷贝到断网环境
	 tar -xzvf Python.tgz
	 cd Python
	 ./configure --prefix= myenv虚拟环境的绝对地址)
	 make&make install
	 默认装完的Python3调用起来要用python3, pip3,很难受,加个软链接
	 ln -s myenv/bin/python3 myenv/bin/python
	 ln -s myenv/bin/pip3 myenv/bin/pip

总结

记录一下将互联网上的环境迁移到内网上的过程,方便日后查看使用,写的不好欢迎各位大佬批评指正。这次的记录是假设迁移的环境和目标操作系统一致,如果不一致,还要考虑操作系统的问题。例如从windows 操作系统迁移到linux,这里建议在windows下安装一个相似的操作系统,可以用wsl或者vmware,下次再出一个笔记,记录,如何再win11上装一个ubantu 。

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值