参考书 | Python机器学习实战 |
---|---|
作者 | 裔隽 张怿檬 张目清 |
出版社 | 科学技术文献出版社 |
难度 | 入门 |
安排 | 计划:本章30分钟;作业:培训后实践本章的各种操作;结果:以Python 3.10创建开发虚拟环境;再创建一个Python3.7版本以下的虚拟环境用来调试兼容性 |
以前培训过venv
,本次培训来说一说conda
。conda
其实可理解为: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的安装
- 安装miniconda和miniforge都可以使用homebrew
brew install miniconda
brew install miniforge
- 安装 conda 后,会创建默认环境:
base
,其Python是conda自带的版本。 - 指定国内镜像(安装和后续的软件库都有mirror)
命令介绍
- 帮助信息:
conda env -help
虚拟环境管理
- 创建虚拟环境:
conda create --name py310-env python=3.10
conda env create --help
获取更多信息
NOTE:如果后面没有
python=3.10
则不安装 Python 的执行文件,而是创建一个ln
,链接到conda
的base
env 的python
。
建议:加上 python=xxx 这个参数,锁定 Python 版本。
可以用 Yaml 或者 text 文件来配置conda
环境:
conda env create -f environment.yml
conda env create -f r equirements.txt
。
- 激活和退出环境:
conda activate py310-env
和conda 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 opencv
,pip
现在不支持这个 (以前支持过,现在不行了)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
支持pip
的requirements.txt
,conda
和pip
安装的包都会兼容的存在于 env 的lib
目录下 -
最后复习一下 pip 的包管理命令,看看是不是差不多
pip install opencv
pip remove opencv
pip freeze > requirements.txt