跳过正文
  1. blog/

Miniforge:Conda solving enviroment终结者

·1308 字
Aoidayo
作者
Aoidayo
懒人
目录

引言
#

conda在不启用libmamba时下载小包的速度就非常慢,一直 solving enviroment... 容易让人狂躁,更不用说用它来安装 pytorch

作为替换,可以在 阿里云的pytorch wheels镜像 上下载需要的pytorch,然后再使用 pip 安装,当然后续可能还需要安装 mkl 等依赖,虽然速度尚可,但是还需要手动解决依赖问题,还是有不小的麻烦的。

conda也清楚自己的依赖解析问题,他们在最新版的conda中引入mamba项目的核心库——用c++重写的依赖项求解器libsolvconda现在可以通过如下命令开启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

上面的方法不错,当然有一个问题就出现了,condamamba的时候又在 solving environment 了怎么办?这个问题太地狱了。

当然有解决方法,可以使用 mamba/micromamba 这两个类似于 conda/miniconda 的包管理器作为替代,只有一个问题,就是纯血 mamaba 不支持 pycharm 调试。

不过这个问题也有解决方法,就是使用 miniforge,这个仅仅只内置 conda-forge 源的最小 conda+mamba 发行版,将 mamba 完美继承到 conda 里面,可以 condamamba 命令互换,几乎0学习成本,而且安装也很方便。

最后再提一嘴 mamba 原作者正在维护的 pixi,这个工具更加类似于 venv,一个项目创建一个虚拟环境,和 conda/mamba 不是一个赛道的,而且 pixi 换源/镜像非常麻烦,现在不是很成熟。另外作为 pip 的替代品 uv,现在已经相当好用了,可以用conda或者mamba直接安装,因为 pip 的速度尚可,所以关于 uv 的介绍以后有机会再写吧。

安装
#

如果已经装了一些包管理器,先卸载

如果已经安装了micromamba,则卸载需要注意: micromamba如果是用cmd安装的,默认会安装在 C:/User/YourName 下面, 需要同时删除可执行文件和所有envs.

关于miniforge:

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

相关文章

数据清洗
·2060 字