开发者

Pytorch Conda环境pack打包迁移报错的处理方案

开发者 https://www.devze.com 2024-08-10 10:06 出处:网络 作者: Loi_Chairman
目录Anaconda虚拟环境打包一、源电脑的环境打包1.安装conda-pack工具2.确定环境3.打包环境4.将打包环境拷贝到U盘二、环境迁移到目标电脑上三、异常处理pip install http://www.devze.com-e. 导致无法pack→忽略管
目录
  • Anaconda虚拟环境打包
  • 一、源电脑的环境打包
    • 1.安装conda-pack工具
    • 2.确定环境
    • 3.打包环境
    • 4.将打包环境拷贝到U盘
  • 二、环境迁移到目标电脑上
    • 三、异常处理
      • pip install http://www.devze.com-e. 导致无法pack→忽略
      • 管理的文件已经被删除或者被覆盖→压缩成tar
      • 重新激活环境

    Anaconda虚拟环境打包

    实验在本机上验证成功,需要网高级设备上迁移,单张4090D,跑一个128k多模态大模型在一个数据集上推理加评测都花了两个半小时,还是太费时间了,重任亟需交给8A100机。

    Pytorch Conda环境pack打包迁移报错的处理方案

    从源电脑中迁移anaconda的环境到目android标电脑,首先两个电脑都安装了anaconda才行,在此基础上。

    一、源电脑的环境打包

    使用Anaconda Prompt操作

    1.安装conda-pack工具

    conda install conda-pack
    

    Pytorch Conda环境pack打包迁移报错的处理方案

    2.确定环境

    conda env list
    

    Pytorch Conda环境pack打包迁移报错的处理方案

    找到你想要打包环境名。比如我的环境名是VLM

    3.打包环境

    conda pack -n VLM -o VJjQaPePjLM.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命令www.devze.com行,将打包环境解压到新环境中

    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 managepythond 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进行打包,然而报出巨量的依赖错误和命名错误

    Pytorch Conda环境pack打包迁移报错的处理方案

    最后乖乖收手去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去看

    Pytorch Conda环境pack打包迁移报错的处理方案

    如果想压缩单个文件,比如myfile.txt,可以使用:

    tar -czvf myfile.tar.gz myfile.txt
    

    这些命令将在当前目录下创建.tar.gz文件,可以在需要的时候更改文件路径或者指定输出目录。

    Pytorch Conda环境pack打包迁移报错的处理方案

    压缩成功

    重新激活环境

    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

    希望能顺顺利利完成!

    以上就是Pytorch Conda环境pack打包迁移报错的处理方案的详细内容,更多关于Conda pack打包迁移报错的资料请关注编程客栈(www.devze.com)其它相关文章!

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号