Conda虚拟环境管理,示例:安装GPU版PyTorch、解决PowerShell启动时无法激活虚拟环境的问题、导出导入环境、安装GCC编译器

建议使用Miniconda,原因:

  • 只含有Conda和Python,没有Spyder、Jupyter等组件,非常轻量。如果想用Jupyter,可以直接用VSCode安装Python扩展,然后新建ipynb文件
  • base环境只有少量的预装库,更加轻量。每做一个新项目就要开一个新环境,不要在base下面做开发
  • 不用担心每次新建环境,网速跟不上的问题,可以用clone指令,从现有环境中create一个一模一样的环境
  • Miniconda 官方下载地址

常用指令及安装GPU版PyTorch

  • 换源,著名的清华源conda分源在此Anaconda 镜像,Anaconda和Miniconda的源是共用的。但是清华源用的人很多,会变得很慢,大家可以去搜索一些冷门的源,比如说:北京外国语大学的源
  • pip 的源也要进行更换,pip 换源后,对于每一个新建的 conda 环境都有效,清华源 pip 分源在此PyPI 镜像
  • 新建一个环境,命名为pytorch112_py38,112是PyTorch版本号v1.12.1的意思,建议使用这种版本号末尾有.1的版本,像是v1.13.0这种版本,会有新版本的bug
  • Python版本要求大于等于3.8,为了兼容大多数使用PyTorch v1.x版本的仓库,我就采用3.8
conda create --name pytorch112_py38 python=3.8.18
  • 激活pytorch112_py38环境,安装v1.12.1版本PyTorch,一定要先换源再安装
conda activate pytorch112_py38
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch
  • 对于 PyTorch 2.0 版本,建议采用 Python 3.10
conda create --name pytorch22_py310 python=3.10.12
conda activate pytorch22_py310
conda install pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=11.8 -c pytorch -c nvidia
  • 到这儿你可能要问了,我不想把环境命名为pytorch112_py38该怎么办呀?放心,pytorch112_py38是用来clone建立新的环境用的,不是直接拿来用的。现在用pytorch112_py38来clone新环境,命名为env
conda deactivate
conda create --name env --clone pytorch112_py38
  • 现在可以查看已有的环境,然后激活clone出来的新环境
conda env list
conda activate env
  • 要单独删除环境里的某个包很简单,比如说从env删除sqlite:
conda remove --name env sqlite
  • 要完全删除新建的环境,需要先退出要被删除的环境,然后删除:
conda deactivate
conda remove --name env --all

解决PowerShell启动时无法激活虚拟环境的问题

  • Conda安装在Windows后,默认不在任何命令行激活虚拟环境,需要init
PS C:\Users\lenovo> conda init --help
usage: conda-script.py init [-h] [--all] [--reverse] [--anaconda-prompt] 
[--json] [-v] [-q] [-d] [shells ...]

Initialize conda for shell interaction. [Experimental]

Options:

positional arguments:
  shells             One or more shells to be initialized. If not given, 
  the default value is 'bash' on unix and 'cmd.exe' on Windows. 
  Use the '--all' flag to initialize all shells. 
  Currently compatible shells are {bash, cmd.exe, fish, powershell, tcsh, xonsh, zsh}
  • 如果直接conda init,则是init了cmd,而不是powershell
PS C:\Users\lenovo> conda init powershell
no change     C:\Users\lenovo\miniconda3\Scripts\conda.exe
no change     C:\Users\lenovo\miniconda3\Scripts\conda-env.exe
no change     C:\Users\lenovo\miniconda3\Scripts\conda-script.py
no change     C:\Users\lenovo\miniconda3\Scripts\conda-env-script.py
......
  • 此时需要关闭当前终端,然后再打开,才能使改变生效。但是PowerShell默认是禁止运行脚本的,因此再次启动PowerShell会报错
. : 无法加载文件 C:\Users\lenovo\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 3
+ . 'C:\Users\lenovo\Documents\WindowsPowerShell\profile.ps1'
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [],PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

// 通过Get-ExecutionPolicy可发现是受限的
PS C:\Users\lenovo> Get-ExecutionPolicy  
Restricted
  • 需要“以管理员身份运行”PowerShell,然后执行Set-ExecutionPolicy RemoteSigned,输入Y

在这里插入图片描述

PS C:\WINDOWS\system32> Set-ExecutionPolicy RemoteSigned
执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 
https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y](Y)  [A] 全是(A)  [N](N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为“N”): Y
  • 关闭当前终端,然后再打开,发现能自动激活虚拟环境了
(base) PS C:\Users\lenovo> conda list
# packages in environment at C:\Users\lenovo\miniconda3:
#
# Name                    Version                   Build  Channel
......

查看Conda信息

conda info

     active environment : kan-tts
    active env location : /home/huangzhuofei/miniconda3/envs/kan-tts
            shell level : 2
       user config file : /home/huangzhuofei/.condarc
 populated config files : /home/huangzhuofei/.condarc
          conda version : 23.9.0
    conda-build version : not installed
         python version : 3.11.5.final.0
       virtual packages : __archspec=1=x86_64
                          __cuda=12.0=0
                          __glibc=2.27=0
                          __linux=5.4.0=0
                          __unix=0=0
       base environment : /home/huangzhuofei/miniconda3  (writable)
      conda av data dir : /home/huangzhuofei/miniconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/linux-64
                          https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/noarch
                          https://mirrors.bfsu.edu.cn/anaconda/pkgs/r/linux-64
                          https://mirrors.bfsu.edu.cn/anaconda/pkgs/r/noarch
                          https://mirrors.bfsu.edu.cn/anaconda/pkgs/msys2/linux-64
                          https://mirrors.bfsu.edu.cn/anaconda/pkgs/msys2/noarch
          package cache : /home/huangzhuofei/miniconda3/pkgs
                          /home/huangzhuofei/.conda/pkgs
       envs directories : /home/huangzhuofei/miniconda3/envs
                          /home/huangzhuofei/.conda/envs
               platform : linux-64
             user-agent : conda/23.9.0 requests/2.31.0 CPython/3.11.5 Linux/5.4.0-150-generic ubuntu/18.04.6 glibc/2.27
                UID:GID : 1006:1006
             netrc file : None
           offline mode : False

导出导入环境

  • 先激活环境,然后导出当前环境到environment.yaml
conda activate kan-tts
(kan-tts) conda env export --file environment.yaml --no-builds
  • 直接从environment.yaml创建环境,创建的环境名和environment.yaml里的name字段一致,可以用--name指定新的环境名
conda env create --file environment.yaml --name new_env_name
  • 或者从environment.yaml更新现有环境,此时现有环境需要和environment.yaml里的name字段一致,否则要用--name
conda env update --file environment.yaml --name cur_env_name

安装GCC编译器

  • conda能够安装GCC编译器是环境管理的福音
  • 能够在无root权限的情况下进行安装
  • 为了精确定位当前系统需要的GCC编译器,可前往conda官网搜索GCC包,如下
    在这里插入图片描述
  • 对于64位的Linux系统,安装gcc_impl_linux-64
conda create --name gcc python=3.8.18
conda activate gcc
conda install gcc_impl_linux-64
  • 然后进入创建的gcc环境目录,搜索gcc
cd /{你的conda安装路径}/miniconda3/envs/gcc
find -name "gcc" -type f
输出: ./libexec/gcc/x86_64-conda-linux-gnu/11.2.0/gcc
  • 最后将查找到的gcc文件的目录,永久加入到环境变量中
vim ~/.bashrc
# 最下面添加一行
export PATH="$PATH:/{你的conda安装路径}/miniconda3/envs/gcc/libexec/gcc/x86_64-conda-linux-gnu/11.2.0"
  • 然后关闭当前命令行,再打开,就能在任意环境下使用gcc编译器了
$ gcc --version
gcc (Anaconda gcc) 11.2.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值