Conda

发布时间 2023-09-24 22:32:57作者: Festu

Anaconda

Anaconda提供多个独立的python环境供使用,可随时切换python大小版本,缺点是配置环境非常耗时间。

为了确保conda的正常使用,需要先卸载已有的python。然后进Anaconda官网下载并安装。

Miniconda

基本类似于 Anaconda,只是最初安装时并不自带机器学习的笨重的包,更为轻量,注重其环境管理器的功能。

PreProfile

conda提供了自己的shell,里面设置了特殊的环境,可以直接使用conda的各种命令。若想直接在终端中调用conda,需要手动配置环境变量,路径为:"Anaconda\Library\bin" . 以下使用介绍基于终端。使用前建议换源:Conda换源

本以为这就ok了,没想到terminal进不去conda的shell。需要将 "Anaconda\Scripts" 也配置到环境变量中,其下提供了一个 activate 命令帮助其他shell进入conda的shell,然后才能进行环境的切换。
有意思的是 "Anaconda/" 下就有"conda.exe",因此直接配这个位置作为环境变量也是可以的。

配好以后cmd可以使用 activate 命令进入conda,powershell仍然不行。输入 conda activate 会发现两个shell都有问题。通过在powershell中输入 conda init powershell 并重启,会发现ps自动进入conda的base环境,输入 deactivate 会提示你选择某个程序来继续运行该shell。通过 conda config --show 查看配置文件会发现 auto_activate_base:true ,通过 conda config --set auto_activate_base false 来修改,重启后发现conda环境没有自动激活。但是在powershell中,activatedeactivate 命令无效,只能使用 conda activateconda deactivate 来进出环境。


省流:

Powershell 可能需要初始化 conda 来激活功能:conda init powershell

使用

  • 先使用 conda create --name cv1 python=3.9.13 创建环境,然后使用 conda activate <name> 来激活指定的环境,此时才算进入该环境,后续的操作都将在该环境中进行。使用 conda env listconda info -e 可以查看当前已经有的conda环境,若不激活特定的环境直接运行conda管理,可能出现奇怪的问题(?)。
  • conda detactivate 将退出当前环境回到base,conda remove --name <name> --all 可以移除环境。--all 不能省略,但可以写成 --a
    重装了一遍Anaconda发现之前留下的环境如果不删除,还是能读取到;换源等设置也还留存着;环境被保存在 "userProfile/.conda/env/"下,直接移除对应的文件夹也能删除环境。
  • 看conda的帮助文档,conda rename -n py27-14 py2 理论上可以更改环境名称,但实际上一直报错,可能是环境名带了"-"的原因(又或者是大家都不用rename呢)。
  • conda install numpy 可以为当前激活的环境安装库,安装完它还会解析环境,一般很费时间。
  • conda update -n base -c defaults conda 更新conda
  • conda clean -a 清理pkgs文件夹
  • conda infoconda config --show 查看conda配置信息
  • conda config 生成配置文件
  • conda info -econda env list 查看环境信息

Problem

  • 为了使用IDA配置了环境变量 PYTHONHOME=F:/Anaconda/envs/py3/ 导致加载Conda失败,系统默认python被更改为py3环境下的python版本,conda运行失败;重装anaconda后python无法正常使用,conda仍无法正常运行。删除 PYTHONHOME 后解决问题。
  • VSC中的conda版本管理插件对Python2失效:最新版python插件不支持python2。