引言 #
conda在不启用libmamba时下载小包的速度就非常慢,一直 solving enviroment...
容易让人狂躁,更不用说用它来安装 pytorch
。
作为替换,可以在 阿里云的pytorch wheels镜像
上下载需要的pytorch,然后再使用 pip
安装,当然后续可能还需要安装 mkl
等依赖,虽然速度尚可,但是还需要手动解决依赖问题,还是有不小的麻烦的。
conda也清楚自己的依赖解析问题,他们在最新版的conda
中引入mamba
项目的核心库——用c++
重写的依赖项求解器libsolv
,conda
现在可以通过如下命令开启libmamba
作为dependency solver
, 支持conda
包的高效依赖解析,并行下载与更快速的环境创建。同时,conda
也支持直接下载mamba
,作为当前环境中下包的一种替换方式。
conda
启用libmamba
作为依赖求解器 / 通过以下方法启用
# 在base环境中安装conda-libmamba-solver
conda install -n base conda-libmamba-solver
conda config --set solver libmamba
# or
conda install numpy --solver=libmamba
conda
启用mamba
作为替代 / 通过以下方法启用
conda config --set custom_channels.conda-forge https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
conda install -n base -c conda-forge mamba
# or
conda install -c conda-forge mamba
mamba install numpy
上面的方法不错,当然有一个问题就出现了,conda
下mamba
的时候又在 solving environment
了怎么办?这个问题太地狱了。
当然有解决方法,可以使用 mamba/micromamba
这两个类似于 conda/miniconda
的包管理器作为替代,只有一个问题,就是纯血 mamaba
不支持 pycharm
调试。
不过这个问题也有解决方法,就是使用 miniforge
,这个仅仅只内置 conda-forge
源的最小 conda+mamba
发行版,将 mamba
完美继承到 conda
里面,可以 conda
和 mamba
命令互换,几乎0学习成本,而且安装也很方便。
最后再提一嘴 mamba
原作者正在维护的 pixi
,这个工具更加类似于 venv
,一个项目创建一个虚拟环境,和 conda/mamba
不是一个赛道的,而且 pixi
换源/镜像非常麻烦,现在不是很成熟。另外作为 pip
的替代品 uv
,现在已经相当好用了,可以用conda
或者mamba
直接安装,因为 pip
的速度尚可,所以关于 uv
的介绍以后有机会再写吧。
安装 #
如果已经装了一些包管理器,先卸载
如果已经安装了micromamba
,则卸载需要注意: micromamba
如果是用cmd安装的,默认会安装在 C:/User/YourName
下面, 需要同时删除可执行文件和所有envs.
关于miniforge:
- 安装
- miniforge/conda-forge官网 conda-forge/miniforge: A conda-forge distribution.
- miniforge github repo页面 conda-forge | community-driven packaging for conda | conda-forge | community-driven packaging for conda
- guide,同时参考mamba和conda
- micromamba
- conda
windows安装时需要注意:
- 安装时 Install 选项 JustForMe, 否则会出现创建环境下载包时权限不够,无法写入文件
- 手动添加miniforge的path
换源 #
使用mamba时需要使用pytorch和nvidia仓库的镜像源来下载 pytorch-cuda及其依赖
,前者的国内镜像仓库很多,后者的镜像仓库国内只有南方科技大学和cernet校园联合镜像站mirrorz提供,所以一旦这两个哥们不提供支持了,mamba在国内也就废了。
# 添加 pytorch 镜像
conda config --set custom_channels.pytorch https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
# 添加 nvidia 镜像
conda config --set custom_channels.nvidia https://mirrors.cernet.edu.cn/anaconda-extra/cloud/
.condarc
- windows :
C:\Users\ffs
- linux :
~/.condarc
show_channel_urls: true
channels:
- defaults
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
custom_channels:
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
nvidia: https://mirrors.cernet.edu.cn/anaconda-extra/cloud/
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
or
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
show_channel_urls: true
custom_channels:
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
nvidia: https://mirrors.cernet.edu.cn/anaconda-extra/cloud/
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
linux使用命令写入
cat <<'EOF' > ~/.condarc
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
custom_channels:
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
nvidia: https://mirrors.cernet.edu.cn/anaconda-extra/cloud/
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
EOF
基本命令流 #
mamba create -n mamba python=3.9
conda search pytorch-cuda=11.8
# mamba install pytorch-cuda=11.8=<build_version> -c nvidia -c pytorch
mamba install pytorch-cuda=11.8=h8dd9ede_2 -c nvidia -c pytorch
# conda search pytorch=2.3.0 --info
mamba install pytorch=2.3.0=py3.9_cuda11.8_cudnn8_0