[培训-Python机器学习]02-使用conda管理环境和包

参考书 Python机器学习实战
作者 裔隽 张怿檬 张目清
出版社 科学技术文献出版社
难度 入门
安排 计划:本章30分钟;作业:培训后实践本章的各种操作;结果:以Python 3.10创建开发虚拟环境;再创建一个Python3.7版本以下的虚拟环境用来调试兼容性

以前培训过venv,本次培训来说一说condaconda其实可理解为:venv + pip,它的主要功能包括:

  • 环境管理:创建多个隔离的Python运行环境,每个环境可以有不同版本的Python和不同的包。在不同的项目之间切换,避免了包版本之间的冲突。
  • 软件包管理:安装、升级、卸载:从Anaconda.org和其他源(如conda-forge)安装Python包和非Python包;升级软件包;卸载软件包。
    注意:除了Python包,conda也是可以安装一些常用软件的)。
  • 软件包的依赖:安装、升级、卸载一个包时,conda会自动处理该包的依赖关系,确保所有需要的包都被正确地安装。此外,它们还会确保包之间的兼容性,避免安装会破坏环境的包。
    注意:其实有时候也会安装破坏环境的包,诀窍就是:能跑就别乱升级,创建专用的虚拟环境)
  • 导出和复制环境:conda可以导出环境的配置文件,方便在其他地方复制同样的环境。

各种conda和mamba

Anaconda和Miniconda

  • 都是由Anaconda, Inc.开发和维护的,所以可以说它们是"一家"的。
  • Anaconda是一个包含了许多预装科学计算库的Python发行版
  • Miniconda是一个更轻量级的版本,只包含了conda和Python,用户可以根据需要自行安装其他库。
  • Anaconda, Inc.提供了商业版的Anaconda,这个版本包含了一些额外的功能和服务,比如企业级的包管理和安全性,以及优先的技术支持。这个版本是需要付费的。但是基础的Anaconda和Miniconda是开源和免费的,都在BSD许可证下发布。

miniforge和mamba

  • 是开源社区维护的(推荐)
  • Miniforge是一个由conda-forge社区维护的conda安装器。conda-forge是一个为conda提供包的社区。Miniforge和Miniconda类似,但默认从conda-forge频道安装包。
  • Mamba:mamba是一个为conda设计的替代品,使用C++编写,旨在提供比conda更快的依赖解析和包安装。可以用Mamba代替conda来创建环境和安装包,我新装的miniforge好像已经带mamba了。

conda的安装

  • 安装 conda 后,会创建默认环境:base,其Python是conda自带的版本。
  • 指定国内镜像
    • 安装 miniforge: https://mirrors.tuna.tsinghua.edu.cn/github-release/conda-forge/miniforge/
    • 镜像使用说明:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

命令介绍

  • 帮助信息:conda env -help

虚拟环境管理

  • 创建虚拟环境:conda create --name py310-env python=3.10
    • conda env create --help 获取更多信息

NOTE:如果后面没有 python=3.10 则不安装 Python 的执行文件,而是创建一个 ln,链接到 condabase env 的 python
建议:加上 python=xxx 这个参数,锁定 Python 版本。
可以用 Yaml 或者 text 文件来配置 conda 环境:
conda env create -f environment.yml
conda env create -f r equirements.txt

  • 激活和退出环境:conda activate py310-envconda deactivate
  • 列出现在机器上的 env:conda env list
  • 删除 env:conda env remove --name py310-env
  • 复制一个 env:conda create --name another-env --clone py310-env
  • 导出 env 的配置信息:conda env export > environment.yml
    • 导出配置后:可以用 conda env create -f environment.yml 来创建新环境

包管理

conda 安装包的参数和 pip 差不多,不再赘述,只说几点(记得先 activate 某个 env):

  • conda 支持 search package:conda search opencvpip 现在不支持这个 (以前支持过,现在不行了)

    conda search opencv
    Loading channels: done
    # Name                       Version           Build  Channel             
    opencv                         4.5.0          py38_5  conda-forge         
    opencv                         4.5.0          py38_6  conda-forge         
    opencv                         4.5.0          py39_5  conda-forge         
    opencv                         4.5.0          py39_6  conda-forge         
    opencv                         4.5.1  py38h150bfb4_0  conda-forge
    ...                            ...
    
  • 指定版本安装: conda install opencv=4.5.1

  • 列出已经安装的包:conda list

  • 删除包:conda remove opencv

  • conda 支持 piprequirements.txtcondapip 安装的包都会兼容的存在于 env 的 lib 目录下

  • 最后复习一下 pip 的包管理命令,看看是不是差不多

    • pip install opencv
    • pip remove opencv
    • pip freeze > requirements.txt

你可能感兴趣的:(软件开发,python,conda)