# Conda
由于机器学习会依赖大量不同环境,环境之间可能有冲突,所以推荐用 Miniconda 或 Anaconda 这种的 python 库+虚拟环境
管理器来对 python 进行统一管理。 conda
其实是 Miniconda 或 Anaconda 中的主程序,用于执行各种命令。
# 安装
Miniconda 是 Anaconda 的轻量化版本,只包含 conda
和 python
,而 Anaconda 则默认包含更多的库,所以 Miniconda 只有几十 M 的大小,而 Anaconda 则有几百 M 的大小。二者在使用中几乎没有差别,可以根据空间自行选取。
- Anaconda Download
- Miniconda Download
无论安装 Anaconda 还是 Miniconda,在安装完成后,应该会默认在当前命令行工具的配置文件中写好环境变量,可以直接用 source ~/.zshrc
(zsh)来读取一下环境变量。
推荐在安装完成后,立刻对 conda
进行更新,可以减少出现未知问题的概率...
conda update -n base conda | |
conda update --all |
# Mamba
mamba
相比 conda
的优势如下:
- 用 C 重新实现了依赖解析器,大幅提高依赖解析速度。
- 并行下载所需要的包
- 在解析依赖时给出步骤提醒,不像 conda 仅仅是一直
solving
同时, mamba
基本实现了所有 conda 的功能,使用起来仅需把上述所有命令中的 conda
替换成 mamba
即可。 mamba
需要通过 conda
来进行安装:
conda install -n base -c conda-forge mamba |
综合来说,可以一定程度解决 conda
过长的 Solving environment
的时间,推荐安装并替换 conda
使用。
# bug 解决
# frozen solve 问题
在用 conda install
包时出现报错:
Solving environment: unsuccessful initial attempt using frozen solve. Retrying with flexible solve. | |
Solving environment: unsuccessful attempt using repodata from current_repodata.json, retrying with next repodata source. |
请按步骤进行排查:
添加
conda-forge
频道# 添加频道
conda config --add channels conda-forge
# 查看已添加的频道
conda config --show-sources
更新 conda 到最新版本
conda update -n base conda
conda update --all
重新安装,若解决,到此结束
若未解决:新建一个虚拟环境
# 创建虚拟环境
conda create -n <EnvName> python=3.11
再次安装即可解决
# 卸载
如果在安装过程中莫名问题(正常操作却出现各种 error),然后通过各种教程仍无法修复,建议卸载重装,可能可以解决问题(博主就是这么解决的)
清除环境变量:清除
~/.zshrc
或~/.bashrc
中的类似下列的内容:# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Your/Conda/Path/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "Your/Conda/Path/etc/profile.d/conda.sh" ]; then
. "Your/Conda/Path/etc/profile.d/conda.sh"
else
export PATH="/Your/Conda/Path/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
删除文件夹:
rm -rf <Your/Conda/Path>
# Conda 常用命令
# 环境
# 新建虚拟环境 | |
conda create -n <EnvName> | |
conda create -n <EnvName> python=3.9 | |
# 列出所有虚拟环境 | |
conda info -e | |
# 进入虚拟环境 | |
conda activate <EnvName> | |
# 退出虚拟环境 | |
conda deactivate | |
# 删除虚拟环境 | |
conda remove -n <EnvName> --all | |
# 复制虚拟环境 | |
conda create --name <NewEnvName> --clone <OldEnvName> |
# 更新
# 查看版本 | |
conda -V | |
# 更新 conda 环境 | |
conda update -n base conda | |
# 更新 conda 的所有包 | |
conda update --all |
# 频道
conda 频道是存储 包
的位置,安装包时 conda 会搜索现有的频道集合,并选取其中一个频道来安装包,一般用 conda-forge
这个免费频道
# 添加新频道 | |
conda config --add channels <channel-name> | |
# 查看所有频道 | |
conda config --show-sources |