Anaconda安装及常用命令、环境复制与迁移——适用于快速高效配置复杂的深度学习环境配置,单台电脑与多台电脑都可操作

安装及常用命令

  • 安装

    • Windows
      • 用国内镜像下载anaconda的安装包, 末尾是"Windows-x86_64.exe"
      • 镜像地址:Index of /
      • 双击安装包,选择“Just me"-->不要选All users,否则可能出现安装虚拟环境时在系统盘,设置自己的安装目录,最好在C盘外如D盘,其他的推荐的打勾
    • linux
      • 依然国内镜像下载anaconda的安装包,末尾是"Linux-x86_64.sh",例如

      • 安装命令

        sh Anaconda3xxx-Linux-x86_64.sh
        
      • 一直点击enter,授权键入yes

      • 安装完成后添加系统路径

        vim ~/.bashrc     # 修改配置文件,添加anaconda系统路径
        export PATH=$PATH:/home/用户名/anaconda3/bin  # 这里的路径根据你的anaconda位置进行设置
        source ~/.bashrc # 上一步完成退出后再执行
        
      • 重启linux终端则会在命令终端左边出现"base"

  • 查看版本

    • conda - V
  • 查看安装了哪些包

    • conda list
  • 查看存在哪些虚拟环境

    • conda env list
      • 需要注意的是,conda如果安装在系统盘C盘外,环境理论上也在对应安装目录下的envs中,如果不是,需要重新设置环境安装目录,具体设置办法
        • 删除虚拟环境:conda remove -n 环境名字 --all

        • 打开C:/Users/用户名/.condarc

        • 末尾添加

          envs_dirs:
            - D:\Applications\anaconda\envs # 根据自己的安装目录设置
          pkgs_dirs:
            - D:\Applications\anaconda\pkgs
            - C:\Users\用户名\.conda\envs
          
        • 或者修改envs文件夹权限,右键点击文件夹属性-->对应Users下的所有权限都打勾

        • 以上都不行,则卸载重装anaconda,很有可能之前选择的是All Users,选择Just me。

    • conda info -e 或conda info --envs
  • 检查更新当前conda

  • 创建虚拟环境

    • conda create -n <环境名字> python=x.x
      • <环境名字>-->写入你为环境取的名字比如pytorch
      • x.x是python版本如python=3.9
    • 激活环境
      • conda activate <环境名字>
      • 在windows上可以直接 activate <环境名字>
    • 关闭虚拟环境
      • deactiavte <环境名字>
  • 删除虚拟环境

    • conda remove -n <环境名字> --all
  • 添加国内镜像如清华源

    • conda换源

      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
      conda config --set show_channel_urls yes
      
    • pip换源

      pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
      
  • 删除环境中的某个包

    • conda remove --name <环境名字> <包名>

conda虚拟环境打包并复制

将现有的环境进行打包复制,供自己使用,方便快捷迅速搭建可用的环境,不需要自己重新下载和安装,需要注意:必须为同一系统比如都是ubuntu或者win11

1. 如果是当前anaconda下的环境复制-->同一用户下复制环境

  • conda create -n B --clone A # 经实验可行,很方便推荐使用

    • A是需要复制的环境
    • B是复制后为环境取的新名字
    • 复制运行一般较慢,但相对于重新安装代价一般是可以接受的

        

会弹出一些error,但是不管他,最终通过激活新环境后,运行python命令也可以执行

2. 如果是将某一安装anaconda路径下的复制到现在个人使用的新anaconda安装路径下

使用场景:Linux服务器上A用户安装的anaconda下有一个虚拟环境env1,现在B用户想要将A用户anaconda下的虚拟环境env1复制到他的anconda目录下

  • 假设A用户的环境:/home/A/anaconda3/envs/env1
  • 将env1复制到B用户的anaocnda下:/home/B/anaconda3/envs/env2

ubuntu创建新用户

假设我们ubuntu原始用户为A,这里用ubuntu创建新用户B

  • 切换为root用户

    • su-->输入密码
    • adduser <username>新建用户
    • adduser <username> sudo # 将用户添加到sudu组

        

  • 退出当前的用户

    • exit
    • su <username>切换到新用户

        

另外一种是使用useradd创建用户,但是不会在/home目录下自动创建与用户名同名的用户目录

su #切换为root用户获取管理员权限用于新建用户
useradd <username> #新建用户(如用户名为username)
passwd <username> #为该用户设定登录密码
usermod -s /bin/bash <username> #为该用户指定命令解释程序(通常为/bin/bash)
usermod -d /home <username> #为该用户指定用户主目录
cat /etc/passwd #查看用户的属性
  • 删除用户
    • su # root用户权限下才能删除用户
    • deluser <username>

conda直接命令复制

直接采用conda命令,但是最好确保两个用户安装的是同一版本的anaconda,适用于同台电脑不同用户

在B用户下:conda create --name env2 --clone /home/A/anaconda3/envs/env1 # 经实验可行,推荐使用

这里A用户:xionglang,B用户:xionglang007,需要将A用户下的虚拟环境llm迁移复制到B用户下的环境中

conda create --name llm --clone /home/xionglang/anaconda3/envs/llm/

可以看到B用户已经有了llm虚拟环境,我们激活后,并验证下成功

文件复制打包环境

采用纯复制法:本质是将环境文件夹的内容复制到新环境下,此方法适合用于两台电脑的不同用户

  • A用户下导出env1,这里A用户为xionglang, env1为llm
  • 将环境导出为tar包
    • tar命令
      • 打包压缩:tar -cvf <archive_name>.tar file或dir
        • gz文件:tar -czvf <archive_name>.tar.gz file或dir
        • bz2文件:tar -cjvf <archive_name>.tar.bz2 file或dir
        • xz文件:tar -cJvf <archive_name>.tar.xz file或dir
      • 解压:tar -xvf <archive_name>.tar #解压到当前目录
        • gz文件:tar -xzvf <archive_name>.tar.gz
        • bz2文件:tar -xjvf <archive_name>.tar.bz2
        • xz文件:tar -xJvf <archive_name>.tar.xz
        • 解压到其他目录:tar -xvf <archive_name>.tar -C /dir
  • 方法1:直接将该文件夹复制到新用户的环境下
    • 此时在新用户下,conda env list不会显示新环境
    • 为新环境添加目录:conda config --append envs_dirs /home/B/anaconda3/envs
    • 注意:对于ubuntu系统,直接cp复制到新用户的环境,需要在修改对应环境的pip,pip3配置,将pip文件里的旧的环境路径,改为新的环境对应的路径(画红圈的路径,改为新环境路径,否则无法进行pip安装
vim /home/B/anaconda3/envs/env2/bin/pip
vim /home/B/anaconda3/envs/env2/bin/pip3

  • 方法2:使用conda-pack命令打包-->经实验可行,比较方便
    • pip install conda-pack
    • conda pack -n <env1> # 最好不要在env1环境下使用此命令
      • 该命令会将env1环境打包成env1.tar.gz的压缩文件,并保存在当前路径
    • 将env1.tar.gz复制到新电脑上,在新电脑用户下的anconda3/envs目录下新建env2目录,并将env1.tar.gz解压到新电脑用户下的anconda3/envs/env2目录下,假设env2为llm_copy
      • tar -xzvf env1.tar.gz -C /home/xionglang007/anaconda3/envs/llm_copy
    • conda env list可以直接
  • 方法3:导出environment_name.yml文件是不同的平台和操作系统-->未实验
    • conda env export > environment.yml
    • 在新电脑上,利用生成的environment_name.yml 文件复现环境:conda env create -f environment.yml

conda base默认环境位置更改

问题描述:在ubuntu 服务器上,有一个conda默认的base环境在位置A上,例如/use/local/anaconda3,现在新用户重新安装了一个anaconda,在位置B上,例如/data2/xl/anaconda3上,现在希望将conda默认的base环境改变到位置B上,

解决办法:需要修改环境变量才行,但注意不是修改.bashrc,而是修改/etc下的profile文件

  • 将anconda环境变量从位置A(本文为/use/local/anaconda3)变为位置B(本文为/data2/xl/anaconda3)
sudo vim /etc/profile
export ANACONDA_HOME=/data2/xl/anaconda3
export PATH=$ANACONDA_HOME/bin:$PATH

保存并关闭,再通过source命令生效

source /etc/profile

验证环境变量

echo $ANACONDA_HOME

输出新的环境变量

anaconda3整个目录移动或复制迁移至新环境

类似conda cp复制,只需要修改anaconda3目录下的一些配置文件,将原先的旧的路径更改为新环境的路径即可,具体修改文件如下

vim /your/path/to/anaconda3/etc/profile.d/conda.sh
vim /your/path/to/anaconda3/bin/conda
vim /your/path/to/anaconda3/bin/activate
vim /your/path/to/anaconda3/bin/deactivate
vim /your/path/to/anaconda3/bin/pip
vim /your/path/to/anaconda3/bin/pip3
vim /your/path/to/anaconda3/bin/conda-env
vim ~/.bashrc
source ~/.bashrc

注意:如果出现安装新环境不在对应的位置除了上述的配置外,还需检查.condarc的配置,即env_dir是否设置正确,可以利用命令find ~ -name ".condarc",再利用vim去编辑与修改condarc文件!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值