当前位置:   article > 正文

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

conda powershell启动

建议使用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
  • 1
  • 激活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
  • 1
  • 2
  • 对于 PyTorch 2.0 版本,建议采用 Python 3.10
conda create --name pytorch22_py310 python=3.10.12
conda activate pytorch22_py310
conda install pytorch==2.2.1 torchvision==0.17.1 torchaudio==2.2.1 pytorch-cuda=11.8 -c pytorch -c nvidia
  • 1
  • 2
  • 3
  • 到这儿你可能要问了,我不想把环境命名为pytorch112_py38该怎么办呀?放心,pytorch112_py38是用来clone建立新的环境用的,不是直接拿来用的。现在用pytorch112_py38来clone新环境,命名为env
conda deactivate
conda create --name env --clone pytorch112_py38
  • 1
  • 2
  • 现在可以查看已有的环境,然后激活clone出来的新环境
conda env list
conda activate env
  • 1
  • 2
  • 要单独删除环境里的某个包很简单,比如说从env删除sqlite:
conda remove --name env sqlite
  • 1
  • 要完全删除新建的环境,需要先退出要被删除的环境,然后删除:
conda deactivate
conda remove --name env --all
  • 1
  • 2

解决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}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 如果直接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
......
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 此时需要关闭当前终端,然后再打开,才能使改变生效。但是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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 需要“以管理员身份运行”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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 关闭当前终端,然后再打开,发现能自动激活虚拟环境了
(base) PS C:\Users\lenovo> conda list
# packages in environment at C:\Users\lenovo\miniconda3:
#
# Name                    Version                   Build  Channel
......
  • 1
  • 2
  • 3
  • 4
  • 5

查看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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

导出导入环境

  • 先激活环境,然后导出当前环境到environment.yaml
conda activate kan-tts
(kan-tts) conda env export --file environment.yaml --no-builds
  • 1
  • 2
  • 直接从environment.yaml创建环境,创建的环境名和environment.yaml里的name字段一致,可以用--name指定新的环境名
conda env create --file environment.yaml --name new_env_name
  • 1
  • 或者从environment.yaml更新现有环境,此时现有环境需要和environment.yaml里的name字段一致,否则要用--name
conda env update --file environment.yaml --name cur_env_name
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/468794
推荐阅读
相关标签
  

闽ICP备14008679号