文章目录
- Anaconda虚拟环境打包
- 一、源电脑的环境打包
- 二、环境迁移到目标电脑上
- 三、异常处理
-
- [pip install -e. 导致无法pack→忽略](#pip install -e. 导致无法pack→忽略)
- 管理的文件已经被删除或者被覆盖→压缩成tar
- 重新激活环境
Anaconda虚拟环境打包
实验在本机上验证成功,需要网高级设备上迁移,单张4090D,跑一个128k多模态大模型在一个数据集上推理加评测都花了两个半小时,还是太费时间了,重任亟需交给8A100机。
从源电脑中迁移anaconda的环境到目标电脑,首先两个电脑都安装了anaconda才行,在此基础上。
一、源电脑的环境打包
使用Anaconda Prompt操作
1.安装conda-pack工具
conda install conda-pack
2.确定环境
conda env list
找到你想要打包环境名。比如我的环境名是VLM
3.打包环境
conda pack -n VLM -o VLM.tar.gz
4.将打包环境拷贝到U盘
Windows环境打包在当前目录,如XX为用户名,路径为
C:/Users/XX/VLM.tar.gz
Linux同理
二、环境迁移到目标电脑上
①方法一
1.用Anaconda Prompt创建新环境,比如新环境是py310:
conda create -n py310 python=3.10
2.将U盘中的打包环境,拷贝在目标电脑的用户名目录:
C:/Users/XX/Py36.tar.gz
3.用Anaconda Prompt将打包环境,解压到新环境路径下:
tar -zxvf Py36.tar.gz -C E:\anaconda3\envs\py36\
4.激活新环境
conda activate py310
注意:如果失败的话,试一下方法二:
②方法二
1.找到目标电脑的环境文件夹
环境的路径为anaconda的所在目录下的envs文件夹,如我的为:E:\anaconda3\envs,以下步骤都在这个路径下进行操作。
2.将U盘中的打包环境,拷贝在环境文件夹envs内。
3.在环境路径下使用cmd命令行,新建文件夹,命名为py36:
mkdir py36
或者手动新建文件夹
4.使用cmd命令行,将打包环境解压到新环境中
tar -zxvf Py36.tar.gz -C ./py36
三、异常处理
pip install -e. 导致无法pack→忽略
报错如下
Collecting packages...
CondaPackError: Cannot pack an environment with editable packages
installed (e.g. from `python setup.py develop` or
`pip install -e`). Editable packages found:
- /home/xxx
改用下面方式
conda pack -n VLM -o VLM.tar.gz --ignore-editable-packages
解压缩使用
mkdir ~/ananconda/envs/pcdet-tmp
tar -xf pcdet.tar.gz -C ~/ananconda/envs/pcdet-tmp
cd ~/ananconda/envs/pcdet-tmp
source ./bin/activate
管理的文件已经被删除或者被覆盖→压缩成tar
CondaPackError:
Files managed by conda were found to have been deleted/overwritten in the following packages:
- charset-normalizer 2.0.4:
- xxxx
This is usually due to `pip` uninstalling or clobbering conda managed files,
resulting in an inconsistent environment. Please check your environment for
conda/pip conflicts using `conda list`, and fix the environment by ensuring
only one version of each package is installed (conda preferred).
解决方案尝试过利用WSL优势直接在Windows下对anaconda中环境env进行打包,然而报出巨量的依赖错误和命名错误
最后乖乖收手去Linux系统下打包压缩尝试是否可行
在Linux中,可以使用tar命令将文件或文件夹压缩为.tar.gz格式。
tar 是用于打包文件的命令。
-c 表示创建一个新的归档文件。
-z 表示使用gzip压缩。
-v 表示在归档时显示详细信息。
-f 后面跟着的是归档文件的名称。
例如,想要压缩anaconda中env下的名为VLM的文件夹,可以使用以下命令:
tar -czvf VLM.tar.gz VLM
注意
在Linux里去看位置,anaconda是不显示完整文件目录的,会直接不显示有env文件夹,但是可以直接cd 进env去看
如果想压缩单个文件,比如myfile.txt,可以使用:
tar -czvf myfile.tar.gz myfile.txt
这些命令将在当前目录下创建.tar.gz文件,可以在需要的时候更改文件路径或者指定输出目录。
压缩成功
重新激活环境
3.第三步:激活环境
对于tar压缩来讲解压执行
tar -xzvf VLM.tar.gz
如果是.zip 拷贝到另外一个系统上并解压到目录下/xxxx/anaconda/envs/则为
unzip -d /xxxx/anaconda/envs/ pyenv.zip
注意!打包的虚拟环境记录的是源环境的,新系统上的anaconda安装路径可能和源环境的不一样,比如源环境是/xxxx/anaconda2023/,新系统上是/xxxx/anaconda/,此时需要先在新系统上新建一个和源环境anaconda安装路径一样的空目录,例如原路径\wsl.localhost\Ubuntu\home\test\anaconda3\envs\VLM的
mkdir /xxxx/anaconda3/envs/
然后再建立软链
ln -s /xxxx/anaconda/envs/pyenv /xxxx/anaconda3/envs/
将空目录指向 实际anaconda路径
然后激活环境 source activate /xxxx/anaconda/envs/VLM
希望能顺顺利利完成!
嘛,如果对您有帮助的话就开心的复制吧,整理不易转载请注明qwq!
如果有更好的建议或意见欢迎补充!
我是亓云鹏(亓Qí),努力与大家一同分享算法的快乐!
每博一图(1/1)↓
Reference:
conda-pack迁移虚拟环境
离线环境conda虚拟环境备份迁移--conda pack问题