建议使用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
  • 激活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.x,建议 Python 大于 3.10
  • 经实测,PyTorch 2.x 能更好的启动多 num_workers 的 DataLoader,因此建议使用 PyTorch 2.x
  • PyTorch 2.x 需要 nvidia 的 conda 源,可以用南方科技大学的
conda config --set custom_channels.nvidia https://mirrors.sustech.edu.cn/anaconda-extra/cloud
conda create --name pytorch22_py310 python=3.10
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

conda create --name pytorch24_py312 python=3.12
conda activate pytorch24_py312
conda install pytorch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 pytorch-cuda=12.4 -c pytorch -c nvidia
  • 若遇到如下问题:
>>> import torch
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/root/miniforge3/envs/pytorch24_py312/lib/python3.12/site-packages/torch/__init__.py", line 290, in <module>
    from torch._C import *  # noqa: F403
    ^^^^^^^^^^^^^^^^^^^^^^
ImportError: /root/miniforge3/envs/pytorch24_py312/lib/python3.12/site-packages/torch/lib/libtorch_cpu.so: undefined symbol: iJIT_NotifyEvent
  • 可以换 pip 来安装,不过默认是从 pytorch 官网拉取 wheel,比较慢,并且之前安装的环境要完全删除,删除环境的命令之后会讲
pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu124
  • 到这儿你可能要问了,我不想把环境命名为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.
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐