Anaconda简介
定义:Anaconda是一个集成的Python发行版,专为数据科学、机器学习和AI开发而设计。它包含了常用的Python库、包管理工具(Conda)和常用数据科学工具(如:Jupyter等开发工具)。
在机器学习和AI开发中使用的原因
- 环境管理便捷:可以通过Conda轻松创建和管理虚拟环境,为不同的项目设置独立的环境,避免Python依赖冲突。
- 内置丰富资源:自带了众多常用的AI库,无需手动安装,节省了大量时间和精力。这使得开发者能够快速搭建起工作环境,立即开始项目开发。
预装的科学计算库
包含 250+ 个流行的数据科学包:
- 数据处理: pandas, NumPy
- 可视化: Matplotlib, Seaborn
- 机器学习: scikit-learn, TensorFlow, PyTorch
- 科学计算: SciPy, Jupyter
图形化工具
- Anaconda Navigator - 图形界面管理环境和应用
- Jupyter Notebook/Lab - 交互式编程环境
- Spyder - 科学Python开发环境
- RStudio - R语言开发环境
一、Conda简介
Conda是一个开源的软件包管理系统和环境管理系统。它最初是为Python程序创建的,但现在已经可以打包和分发其他软件,适用于Linux、macOS和Windows系统。 以下是关于conda的详细信息:
主要功能
- 包管理:可以快速安装、运行和更新包及其依赖项,类似于Node.js的npm或Python的pip,但功能更强大,能更好地处理依赖关系。
- 环境管理:能够轻松地在计算机上创建、保存、加载和切换环境,使得在同一台机器上管理多个软件包版本成为可能,这对于需要不同版本的Python或特定依赖项的项目非常有用。
与pip的区别
- 包管理范围:conda不仅可以管理Python包,还可以管理其他语言的包;而pip主要用于管理Python包。
- 环境隔离方式:conda本身可以创建和管理独立的环境,而pip一般要与虚拟环境(如:
venv)结合使用来实现类似的隔离效果。 - 依赖冲突解决:conda能够解决包之间的依赖关系冲突,确保安装兼容的包;pip在安装包时如果存在依赖冲突,可能需要手动解决。
venv是 Python 官方内置的用于创建虚拟环境的工具。
常用 Conda 命令示例
| 功能 | 命令 | 说明 |
|---|---|---|
| 创建环境 | conda create -n 环境名 python=3.10 | 创建一个名为“环境名”的新环境,并指定Python版本为3.10 |
| 激活环境 | conda activate 环境名 | 进入(使用)某个环境(Windows和macOS/Linux命令相同) |
| 退出环境 | conda deactivate | 退出当前环境,回到基础环境 |
| 列出所有环境 | conda env list 或 conda info -e | 查看已创建的所有环境 |
| 安装包 | conda install numpy 或 pip install numpy | 在当前激活的环境中安装包(优先使用conda) |
| 列出已安装包 | conda list | 查看当前环境中已安装的包 |
| 删除环境 | conda env remove -n 环境名 | 删除一个不再需要的环境 |
| 导出环境 | conda env export > environment.yml | 将当前环境的配置导出到文件,便于分享和复现 |
二、Jupyter Notebook简介
定义:Jupyter Notebook是一个基于Web的交互式开发环境,支持Python代码编写、调试、运行以及数据可视化。它被广泛应用于AI研究、数据分析和机器学习模型训练。
在机器学习和AI开发中使用的原因
- 交互式执行代码:支持分块执行代码,便于调试和数据分析。在机器学习和AI开发中,经常需要对代码进行反复调试和修改,Jupyter Notebook的这种特性可以让开发者快速查看代码执行结果,及时调整代码逻辑。
- 文档与代码结合:可以在Notebook中添加Markdown文档,方便记录研究过程、注释代码功能和撰写项目报告。对于机器学习和AI项目,这种文档与代码相结合的方式非常有利于知识的整理和分享。
- 与Anaconda完美兼容:Anaconda内置Jupyter Notebook,开箱即用,两者结合可以为机器学习和AI开发提供一个高效、便捷的工作环境。
Jupyter Lab 是 Jupyter Notebook 的下一代产品和功能超集。
- Jupyter Notebook 是开创者,提供了一个简单直接的文档式交互界面。
- Jupyter Lab 是进化版,提供了一个模块化、集成化的开发环境。
jupyter内核相关指令
查看已注册内核 只显示手动注册的内核,nb_conda_kernels模块自动检测到的不会显示
jupyter kernelspec list
删除内核
jupyter kernelspec remove myenv
查看内核详细信息
jupyter kernelspec list --json
三、conda环境与jupyter内核绑定
- 激活conda环境:使用命令
conda activate <环境名称> - 下载内核:
conda install ipykernel - 内核和环境匹配:
python -m ipykernel install --user --name <内核名称> --display-name <内核展示名称>
命令分解
| 命令 | 含义 |
|---|---|
python | 当前已激活的 Python 解释器(通常是你想注册的虚拟环境中的 Python) |
-m ipykernel | 以模块方式运行 ipykernel 包 |
install | ipykernel 模块的子命令,表示安装一个内核 |
--user | 将内核安装到当前用户的目录下,不需要管理员权限 |
--name <内核名称> | 内核名称,建议与环境名称一致(可自定义) |
--display-name <内核展示名称> | jupyter中显示的内核名称(可自定义) |
架构关系
四、实践操作
下载Anaconda
官网下载地址:www.anaconda.com/download/su…
清华源下载地址:mirrors.tuna.tsinghua.edu.cn/anaconda/ar…
清华源是国内镜像地址,在国内下载会更快一些。
验证是否安装成功
- 使用
conda --version或conda -V验证Conda是否安装成功。 - 使用
python --version或python -V验证Python是否安装成功。 - 使用
jupyter notebook --version或jupyter notebook -V验证Jupyter Notebook是否安装成功。 - 使用
jupyter-lab --version或jupyter-lab -V验证Jupyter Lab是否安装成功。
设置环境变量
如果提示以上命令不存在,也要检验一下环境变量是否配置正确。
常规环境变量路径
C:\Users\你的用户名\Anaconda3 # 基础位置
C:\Users\你的用户名\Anaconda3\Scripts # 直接命令
C:\Users\你的用户名\Anaconda3\Library\bin # 运行时依赖
我是安装在D盘ProgramData中的,以下是我的环境变量路径
D:\ProgramData\anaconda3
D:\ProgramData\anaconda3\Scripts
D:\ProgramData\anaconda3\Library\bin
设置镜像仓库
conda安装需要的Python包非常方便,但是官方服务器在国外,下载龟速,国内清华大学提供了Anaconda的镜像仓库,我们把源改为清华大学镜像源
方法一:命令行设置,如下:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes # 安装包时显示频道URL
方法二:直接修改配置文件
找到用户目录下的.condarc文件,内容改为如下内容即可
ssl_verify: true
channels: – https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ – defaults
show_channel_urls: true # 安装包时显示频道URL
conda 和 pip 搭配使用
- conda能自动处理依赖冲突问题,所以安装依赖时优先使用conda命令。但是有时conda资源可能没有对应的依赖,这时就需要使用pip命令安装了。
- conda默认渠道没有依赖包,而 conda-forge 是一个社区维护的软件源,更新通常更及时,包版本也更丰富。
使用conda-forge渠道的方式
-
明确指定 conda-forge 渠道: 在安装命令中加上
-c conda-forge,告诉 Conda 优先从这个渠道搜索包。bash conda install xxx -c conda-forge -
将 conda-forge 设为优先渠道(推荐) : 为了避免每次安装都要指定渠道,可以将其添加到您的渠道列表并设为最高优先级。
bash conda config --add channels conda-forge conda config --set channel_priority strict
使用Conda创建虚拟环境
创建虚拟环境
创建一个名为myenv且指定Python版本为3.10的虚拟环境
语法:conda create -n <环境名称> [选项]
conda create -n myenv python=3.10
切换(激活)虚拟环境并下载绑定jupyter内核
首页安装或切换命令行工具后需要先使用
conda init命令初始化,以便于能切换正常切换环境。
切换(激活)虚拟环境,激活后命令行提示符会显示当前环境名称,表示已切换到该环境。
语法:conda activate <环境名称>
conda activate myenv
下载内核并为conda环境注册内核
# 下载内核
conda install ipykernel
为conda环境注册jupyter内核(当前环境已切换至myenv中)
常规情况下,以下命令中的<内核名称>建议与conda的环境名一致。不过我们为了分析conda环境名 和 jupyter内核名之间的关系,接下来我们会特意使用不同的名称。
语法:python -m ipykernel install --user --name <内核名称> --display-name <内核展示名称>
# 建议写法
python -m ipykernel install --user --name myenv --display-name "Python 3.10 (My Env)"
# 我们以该命令为例分析两个名称之间的关系
python -m ipykernel install --user --name myenv-kernel --display-name "Python 3.10 (My Env Kernel)"
查看conda环境列表 和 Jupyter内核列表
Jupyter Notebook中的内核列表如下图
通过以上两个图片的环境名称myenv、内核名称myenv-kernel,以及Jupyter Notebook中展示的内核名称Python 3.10 (My Env Kernel),就很好理解命令python -m ipykernel install --user --name myenv-kernel --display-name "Python 3.10 (My Env Kernel)"中的三个名称的意义了。
隐藏多久内核
有些朋友可能也发现了,Jupyter Notebook中展示的内核列表中还有Python [conda env:base] 和 Python [conda env:myenv]。
Python [conda env:base]是默认内核,而Python [conda env:myenv]则是nb_conda_kernels自动检测出来的内核。 它会自动检测所有已经安装的conda环境,并将符合条件的虚拟环境显示为可用的kernel。虚拟环境需要满足的条件是:必须安装了ipykernel,并且不是隐藏环境(即名称不能以.开头)。
卸载nb_conda_kernels包,这样就不会自动显示所有符合条件的conda环境了。注意这个包是在base环境下的,要在base环境卸载。
# 切换到base环境
conda activate base
#卸载nb_conda_kernels包
conda remove nb_conda_kernels
重启Jupyter Notebook后,内核列表如下图。Python [conda env:myenv]内核已经去掉了。
启动Jupyter Notebook 或 Jupyter Lab
在项目目录中启动cmd,然后在命令行界面使用以下命令启动Jupyter Notebook 或 Jupyter Lab。
启动Jupyter Notebook
jupyter notebook
启动Jupyter Lab
jupyter lab
Jupyter Notebook编辑页面,
AI算力云平台
| 平台名称 | 平台类型 | 核心功能/服务 | 目标用户 | 计费方式 |
|---|---|---|---|---|
| AutoDL | 算力租赁平台 | 主打高性价比的GPU算力租赁,提供丰富的预置环境镜像,开箱即用-2-3。 | AI开发者、学生、科研人员-2。 | GPU按小时计费,定价透明-2。 |
| Azure | 全功能云平台 | 提供从虚拟机、数据库到一站式AI服务(如Azure OpenAI) 的全栈云服务-2。 | 企业开发团队、需要构建完整AI应用的用户-2。 | 按不同服务定价,新用户有免费额度-2。 |
| 百度EasyDL | 自动化AI平台 | 零门槛模型训练,用户只需上传数据,平台自动完成模型训练和部署,无需编码-1-6-7。 | 无AI算法基础、希望快速定制模型的企业和个人-1-6。 | 通常按API调用次数或资源包收费。 |
| 算家云 | 算力租赁平台 | 提供GPU算力租赁,强调新硬件和流畅体验,租用方式人性化,文档教程详细-3-4。 | AI学习者、模型训练者-3。 | 提供按量计费等多种灵活方式-3-4。 |
| OpenBayes | 算力与社区平台 | 提供算力资源,并建立共享与合作的社区生态系统-5。 | AI开发者、科研人员-5。 | 未明确提及,通常为按使用计费。 |
参考文献: