Anaconda是一个方便的python包管理和虚拟环境管理软件,一般用来配置不同的项目环境。在安装package的时候,conda将自动安装依赖包,减少依赖出错。anaconda适合做数据分析,尤其适合测试各种开源的深度学习模型。

为什么要用虚拟环境?
使用conda可用来创建多个互不干扰的虚拟python环境,分别运行不同版本的软件包,实现项目环境独立,也可以将虚拟环境导出/分享,便于迁移,一定程度上改善了碎片化问题。

安装步骤:

  • 清华镜像 下载Miniconda,其中只包含Conda和 Python,不臃肿
  • 安装过程中勾选“Add Anaconda to the system PATH environment variable”,勾选“Register Anaconda as the system Python 3.7”
  • 添加 Anaconda 仓库与第三方源的清华镜像查看帮助
  • 切换pip源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
  • 查看conda:conda --version
  • 更新conda:conda update conda

环境管理命令:

  • 查看环境 conda env list

  • 激活环境 conda activate <env_name>

  • 退出环境 conda deactivate <env_name>

  • 创建环境

    # 如果不指定Python版本,则默认配置为Anaconda对应的版本, 如3.7.4
    
    conda create --name <env_name> <package_names>
    简写:
    conda create -n <env_name> <p1> <p2> 等
    
    如:
    conda create -n python python=3.6  //小版本号默认最新 3.6.9
    conda create -n python python=3.6.5  
    conda create -n python python=3.6.5 numpy pandas
    
  • 移除环境

    conda env remove -n <env_name>
    
  • 导入环境

    conda env create -f <file_name>     // 创建/导入环境
    conda env update -f <file_name>     // 更新
    
    如:
    conda env create -f <environment.yaml>
    
  • 导出环境

    # 注意: 先激活目标环境,再导出
    # 当前环境信息会被保存在environment.yaml文件中
    # 可以使用 notepad++ 查看
    conda env export > environment.yaml 
    
  • 重命名环境 无. 可以clone新的名字,再删除

  • 复制环境 conda create --name <dst_env_name> --clone <src_env_name>


包管理命令:

可以用conda, 也可以用pip, 只是来源不一样, 安装位置相同, 是可以用pip卸载conda安装的包. 但是建议只使用pip install\search 命令, 其他命令都使用conda, 避免混淆.

激活环境后安装的包位于 D:\Miniconda\envs\env_name\Lib\site-packages ;未激活/指定环境, base环境下安装的包位于 D:\Miniconda\Lib\site-packages, 操作的包也只是这些包, sublime操作的包也只是这些包.

各环境独立, 不存在操作所有环境的所有包; 但可同时操作某一环境的多个包, 包名以空格隔开即可.

安装时要注意版本号, conda安装会让用户确认是否安装. 但pip则不会, pip安装前一定要search. 由于匹配更新的问题,某些包只能通过pip安装,如opencv 4.x、PyTorch等

包管理操作前,必须激活目标环境,以下是常用的包管理命令

  • 列出所有包 conda list
  • 安装包 conda install <package_name>
  • 移除包 conda remove <package_name>
  • 更新包
    # 指定包
    conda update <package_name>
    
    # 所有包
    conda update --all
    
  • 搜索包
    # 模糊搜索
    conda search <package_name>
    
    # 精确搜索
    conda search --full-name <package_name>