十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

清华源停止Anaconda镜像后:conda换源与Miniforge切换完整指南

清华源停止Anaconda镜像后:conda换源与Miniforge切换完整指南 2026年8月9日清华镜像站的 Anaconda 相关资源调整正式落地。很多习惯从mirrors.tuna.tsinghua.edu.cn/anaconda拉包的同学昨天还能正常conda install今天就开始报unavailable invalid channel: http 404 not found for channel anaconda/pkgs/msys。如果你一直用的是旧的.condarc现在最该做的事不是反复重试而是换一套 Plan B 方案。这篇不是原理课是一份完整的切换记录。我会把清华源停止 Anaconda 镜像后的影响范围、备用源选择、.condarc一键切换、Miniforge 新装流程、pip 镜像切换、批量部署脚本和常见报错排查都写清楚。你如果手里管着几台服务器或者刚装好一台 Windows 开发机这篇文章可以收藏后照着操作。1. 清华源停止 Anaconda 镜像后的影响范围先说结论Anaconda 相关的两大类资源已经不可靠一是 Anaconda 官方发行版安装包二是默认的anaconda/pkgs/main、anaconda/pkgs/r、anaconda/pkgs/msys2等仓库镜像。影响范围不是“某个包坏了”而是整个频道同步链路发生了变化。项目说明事件类型清华镜像站调整 Anaconda 相关资源时间节点2026 年 8 月 9 日起陆续生效典型报错unavailable invalid channel: http 404 not found for channel anaconda/pkgs/msys受影响功能conda 安装/升级包、创建虚拟环境、环境复制、CI 构建拉取依赖不受影响范围清华 PyPI 镜像、系统镜像、Docker 镜像等按需是否调整推荐替代方案阿里云镜像、腾讯云镜像、华为云镜像、Miniforge 官方源、conda-forge迁移难度低到中主要是配置文件替换和缓存清理这次调整的核心影响是凡是在default_channels里写死清华 Anaconda 地址的用户都会在解析默认频道时出现问题。如果你是个人用户改一下.condarc就能解决如果你在公司内部有几十台机器共用一个镜像同步脚本就得把所有配置模板整体改一遍。这里也要提醒一句类似 Anaconda 这类发行版的第三方镜像本身受官方再分发条款约束。清华源调整相关资源属于镜像站自己的合规和运维决策具体说明可以查看清华镜像站公告。用户切到其他镜像源时同样要先确认该镜像是否还提供同步、是否在条款允许范围内使用。2. 适用场景与使用边界这套 Plan B 适合以下四类人第一类是个人开发者和学生开发机上装了 Anaconda 或 Miniconda以前直接改清华源拉包现在需要换成其他国内镜像或 conda-forge。第二类是负责团队基础环境的运维或算法工程师需要批量修改服务器上的 conda 配置。第三类是正在跑 CI/CD 的团队构建镜像时要用 conda 装 Python 包构建机上的源必须稳定。第四类是刚准备装 Python 环境的新人原本会下载 Anaconda 安装包现在更建议直接装 Miniforge省去后续换源麻烦。使用边界也要说清楚。镜像源解决的是“下载速度”和“访问稳定性”问题不解决“软件授权”问题。Anaconda 官方仓库中的部分包根据 Anaconda 官方条款可能对商业组织、团队规模或月下载量有额外要求。清华源停止部分 Anaconda 镜像本身就说明第三方再分发不是无条件的。个人学习和实验环境问题不大但公司内部使用尤其是超过一定规模建议评估是否需要走 Anaconda 官方商业订阅或者改用完全开源的 conda-forge 频道组合。还有一点本文不会推荐任何非正规渠道的“加速器”“镜像站”。网络下载问题就通过国内合规镜像和官方源解决。3. Plan B 前置条件与环境检查执行切换之前先花三分钟确认本机 conda 状态。不要一上来就删配置文件容易把原有环境搞乱。在终端里依次运行以下命令conda --version conda config --show channels conda config --show-sources第一条看 conda 版本第二条看当前生效的频道第三条看这些配置写在哪个文件里。.condarc的位置通常是WindowsC:\Users\你的用户名\.condarcLinux~/.condarc或/root/.condarcmacOS~/.condarc检查完配置后再看一下网络环境。需要确认本机能访问国内镜像站比如mirrors.aliyun.com或mirrors.ustc.edu.cn。ping mirrors.aliyun.com curl -I https://mirrors.aliyun.com/anaconda/pkgs/main/能返回 HTTP 200 说明连通性没问题。如果公司网络有防火墙限制需要先把这些域名加到白名单。最后还是要备份旧配置。切换后如果发现不合适可以随时回滚。备份命令很简单cp ~/.condarc ~/.condarc.bak.20260809Windows 下用 PowerShellCopy-Item $env:USERPROFILE\.condarc $env:USERPROFILE\.condarc.bak.20260809这里强调的是“可回滚”而不是直接删除。后续所有操作都建立在备份完成的基础上。4. conda 镜像切换备用源配置与验证4.1 修改 .condarc现在开始正式切换。我推荐的默认组合是默认频道用阿里云镜像社区频道用 conda-forge其他云平台频道按需挂载。修改.condarc把内容替换成下面这样channels: - defaults show_channel_urls: true default_channels: - https://mirrors.aliyun.com/anaconda/pkgs/main - https://mirrors.aliyun.com/anaconda/pkgs/r - https://mirrors.aliyun.com/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.aliyun.com/anaconda/cloud pytorch: https://mirrors.aliyun.com/anaconda/cloud pytorch-lts: https://mirrors.aliyun.com/anaconda/cloud nvidia: https://mirrors.aliyun.com/anaconda/cloud如果不想用阿里云腾讯云和华为云也可以。腾讯云的地址是default_channels: - https://mirrors.cloud.tencent.com/anaconda/pkgs/main - https://mirrors.cloud.tencent.com/anaconda/pkgs/r - https://mirrors.cloud.tencent.com/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.cloud.tencent.com/anaconda/cloud pytorch: https://mirrors.cloud.tencent.com/anaconda/cloud华为云地址是default_channels: - https://repo.huaweicloud.com/anaconda/pkgs/main - https://repo.huaweicloud.com/anaconda/pkgs/r - https://repo.huaweicloud.com/anaconda/pkgs/msys2 custom_channels: conda-forge: https://repo.huaweicloud.com/anaconda/cloud pytorch: https://repo.huaweicloud.com/anaconda/cloud配置文件里不要同时堆太多镜像原因在后面性能部分会讲。选一个主源配一个 conda-forge 备用频道的优先级就够了。4.2 命令行方式修改如果你不想手动编辑文件也可以直接用命令设置conda config --set show_channel_urls true conda config --set default_channels https://mirrors.aliyun.com/anaconda/pkgs/main conda config --append default_channels https://mirrors.aliyun.com/anaconda/pkgs/r conda config --append default_channels https://mirrors.aliyun.com/anaconda/pkgs/msys2 conda config --add custom_channels.conda-forge https://mirrors.aliyun.com/anaconda/cloud conda config --add custom_channels.pytorch https://mirrors.aliyun.com/anaconda/cloud设置完成后用下面的命令确认conda config --show channels conda config --show default_channels conda config --show custom_channels这里有一个容易踩的坑很多人只改了default_channels但项目里如果直接写了conda install -c pytorch或者用了channels:列表里显式指定的频道conda 仍然会去访问官方repo.anaconda.com或原来的清华地址。必须把custom_channels也给出来conda 才能把pytorch、conda-forge这种短名称映射到镜像上。4.3 清理缓存与验证配置改完后清理一下旧缓存避免 conda 还在用之前的索引数据conda clean -i如果环境缓存占用很大可以一并清理conda clean --all --yes接下来跑一个最小验证命令conda search numpy --info | head -20这个命令会强制从新源拉取频道索引。如果顺利返回 numpy 版本信息说明源已经切通。如果还是报 404继续往下看检查default_channels和custom_channels是否写对以及镜像站是不是真的提供这个频道。5. 新装环境 Plan BMiniforge 与 pip 镜像源如果你不是要改旧的 Anaconda而是准备新装一套 Python 环境我更建议直接装 Miniforge。Miniforge 默认使用 conda-forge 频道没有 Anaconda 官方仓库的授权问题安装包体积也小很多正好避开“清华源停止 Anaconda 镜像”对安装包下载的直接影响。5.1 用 Miniforge 替代 Anaconda 安装包下载 Miniforge 安装脚本时可以直接从 conda-forge 的 GitHub Releases 获取最新版wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh执行安装指定安装目录bash Miniforge3-Linux-x86_64.sh -b -p $HOME/miniforge3-b表示静默安装-p指定路径。安装完成后激活环境source $HOME/miniforge3/bin/activateMiniforge 自带 conda 和 mambamamba 的依赖解析速度比 conda 默认快很多。安装常用包时可以用mamba install python3.12 numpy pandas如果你不想安装 Miniforge也可以用 micromamba。micromamba 是一个独立的二进制不需要 base 环境适合 Docker 镜像和 CIcurl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj bin/micromamba5.2 pip 镜像源切换conda 源调整不等于 pip 源停掉。清华 PyPI 镜像目前仍然是一个可用的选择但为了保险也建议在配置时多列一个备用源。常见的国内 pip 镜像源清华 PyPIhttps://pypi.tuna.tsinghua.edu.cn/simple阿里云 PyPIhttps://mirrors.aliyun.com/pypi/simple/腾讯云 PyPIhttps://mirrors.cloud.tencent.com/pypi/simple华为云 PyPIhttps://repo.huaweicloud.com/repository/pypi/simple设置全局 pip 源pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn如果使用阿里云pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ pip config set global.trusted-host mirrors.aliyun.com单独安装 PyTorch 这种大型包时也可以临时指定源不用改全局配置。比如pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121如果官方源下载慢再临时用 pip 国内源pip install torch torchvision torchaudio --index-url https://mirrors.aliyun.com/pypi/simple/注意 PyTorch 这一类包含大量本地依赖的包先确认对应版本的 CUDA 依赖。如果安装环境有 GPU可以再确认兼容的 CUDA 版本避免装到 CPU 版本。5.3 重型包获取建议Anaconda 镜像停服后最难受的其实是这类场景需要在离线服务器上装完整 PyTorch 环境或者需要固定一组软件包版本。建议工具是按需使用 conda-pack 或直接缓存 wheel 包。对于离线环境可以在有网络的机器上把依赖预下载到本地目录pip download torch torchvision -d ./pypi_cache然后在目标机器上离线安装pip install --no-index --find-links ./pypi_cache torch torchvisionconda 环境打包也可以conda install conda-pack conda pack -n myenv -o myenv.tar.gz这种方式不是用来替代镜像源的而是作为 Plan B 的 Plan B适合部署到内网机器。6. 功能测试与效果验证切换之后不要急着跑业务脚本。建议按下面的顺序做四组测试每步都确认输出正常再继续下一步。6.1 测试一创建新虚拟环境conda create -n planb_test python3.12 -y预期结果conda 从新源下载 Python 和基础依赖最后输出done。如果在这里报 404说明default_channels还没配置好。6.2 测试二安装常用科学计算包激活环境后安装一组最常见的包conda activate planb_test conda install numpy pandas scipy -y判断成功的标准三个包都被解析到同一个频道来源安装过程无 404 报错。6.3 测试三安装 conda-forge 频道包conda-forge 是社区主要力量很多新版 Python 包会先发布到 conda-forge。测试一下conda install -c conda-forge opencv如果之前custom_channels里写了 conda-forge这里不需要真的去访问conda.anaconda.org。从输出里可以看到包的实际下载地址只要不是连到速度极慢或已经失效的地址就说明映射成功。6.4 测试四pip 安装大包pip install torch --index-url https://mirrors.aliyun.com/pypi/simple/重点观察下载速度和安装后的可用性。安装完成后执行python -c import torch; print(torch.__version__)输出版本号说明 pip 源没有问题。6.5 判断标准汇总测试项成功标准失败时优先排查创建环境conda 下载无 404default_channels 是否配好安装 conda 包安装完成且无冲突频道优先级是否正常安装 conda-forge 包下载源为镜像地址custom_channels 是否漏配pip 安装包下载速度正常且能 importpip index-url 是否正确7. 批量部署与自动化配置个人机器手动改配置也就三分钟但如果你管理 10 台服务器或者公司 CI 构建环境一次要拉起 5 个 agent手动改就太容易出错了。这种场景要的是批量部署和自动化配置脚本。7.1 多台服务器同步 .condarcLinux 环境下可以先写好一份标准.condarc然后用脚本分发到所有机器。这里给一个通用示例#!/bin/bash TARGET_FILE$HOME/.condarc BACKUP_FILE$HOME/.condarc.bak.$(date %Y%m%d) if [ -f $TARGET_FILE ]; then cp $TARGET_FILE $BACKUP_FILE fi cat $TARGET_FILE EOF channels: - defaults show_channel_urls: true default_channels: - https://mirrors.aliyun.com/anaconda/pkgs/main - https://mirrors.aliyun.com/anaconda/pkgs/r - https://mirrors.aliyun.com/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.aliyun.com/anaconda/cloud pytorch: https://mirrors.aliyun.com/anaconda/cloud EOF conda clean -i conda search numpy --info | head -5Windows 机器可以用 PowerShell 脚本写同样的内容$condaConfig channels: - defaults show_channel_urls: true default_channels: - https://mirrors.aliyun.com/anaconda/pkgs/main - https://mirrors.aliyun.com/anaconda/pkgs/r - https://mirrors.aliyun.com/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.aliyun.com/anaconda/cloud pytorch: https://mirrors.aliyun.com/anaconda/cloud $configPath Join-Path $env:USERPROFILE .condarc Copy-Item $configPath $configPath.bak -ErrorAction SilentlyContinue $condaConfig | Out-File -FilePath $configPath -Encoding utf8 conda clean -i conda search numpy --info | Select-Object -First 57.2 CI 流水线 conda 配置GitHub Actions 或自建 GitLab CI 里可以直接在构建步骤中执行下面几条命令- name: Configure conda mirrors run: | conda config --set show_channel_urls true conda config --set default_channels https://mirrors.aliyun.com/anaconda/pkgs/main conda config --append default_channels https://mirrors.aliyun.com/anaconda/pkgs/r conda config --append default_channels https://mirrors.aliyun.com/anaconda/pkgs/msys2 conda config --add custom_channels.conda-forge https://mirrors.aliyun.com/anaconda/cloud conda clean -i这里要注意公司内网 CI 如果通过代理访问外网需要提前把镜像站域名加入代理白名单。否则镜像地址配得再好代理一拦CI 还是会失败。7.3 无人值守与静默安装服务器或 Dockerfile 里安装 Miniforge 时使用静默安装模式bash Miniforge3-Linux-x86_64.sh -b -p /opt/miniforge3 /opt/miniforge3/bin/conda init如果需要在 Dockerfile 里做示例FROM ubuntu:22.04 RUN apt-get update apt-get install -y wget \ wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh \ bash Miniforge3-Linux-x86_64.sh -b -p /opt/miniforge3 \ rm Miniforge3-Linux-x86_64.sh ENV PATH/opt/miniforge3/bin:$PATH RUN conda config --set default_channels https://mirrors.aliyun.com/anaconda/pkgs/main CMD [bash]7.4 与自动化工具对接如果你的内部系统有配置管理平台例如 Ansible可以将.condarc模板交给配置管理工具统一下发。这里提供一个 Ansible 任务片段思路- name: Ensure conda config directory exists file: path: {{ ansible_env.HOME }}/.conda state: directory - name: Deploy condarc copy: dest: {{ ansible_env.HOME }}/.condarc content: | channels: - defaults show_channel_urls: true default_channels: - https://mirrors.aliyun.com/anaconda/pkgs/main - https://mirrors.aliyun.com/anaconda/pkgs/r - https://mirrors.aliyun.com/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.aliyun.com/anaconda/cloud pytorch: https://mirrors.aliyun.com/anaconda/cloud notify: clean conda cache这类方式适合公司内部几百台机器批量维护本质上是把“手工换源”变成“配置即代码”。8. 资源占用、性能观察与常见问题排查8.1 下载速度与镜像同步延迟镜像源不是实时同步的。阿里云、腾讯云、华为云的 Anaconda 仓库以及 conda-forge 镜像都会有自己的同步周期。刚发布的新版包可能在镜像站上滞后几小时甚至几天。切源之后建议先跑几个大包的安装看看速度。如果某个镜像在高峰期非常慢可以在.condarc中换另一个备用源。不要同时配置两个同样的主频道conda 会依次尝试失败回退反而增加等待时间。8.2 磁盘与内存占用conda 的包缓存默认放在pkgs目录时间久了占空间很大。Windows 下通常是C:\Users\用户名\anaconda3\pkgsLinux 下是/opt/anaconda3/pkgs或~/miniforge3/pkgs。查看缓存占用conda clean --dry-run --all会列出可以清理的缓存文件大小。确认后执行conda clean --all --yes内存方面conda 默认依赖解析器和 mamba 不同复杂环境解析时内存占用差异很大。如果服务器内存有限建议用 mamba 替代 conda install或者使用更轻量的 micromamba。8.3 常见问题排查表问题现象可能原因排查方式解决方案unavailable invalid channel: http 404 not found for channel anaconda/pkgs/msys旧清华源地址已失效查看conda config --show default_channels替换为可用的国内镜像地址换源后 conda 仍然很慢仍有请求访问官方源开启conda config --set show_channel_urls true观察下载地址补全custom_channels映射ssl certificate problem镜像站证书或公司代理拦截用 curl 测试镜像地址更新 CA 证书不要轻易关闭 SSL 验证conda 环境创建后找不到 PythonPATH 顺序不对或环境激活失败which python重新conda init并重启终端conda install 出现包冲突多个频道优先顺序混乱conda config --show channel_priority设置channel_priority: strictpip 安装 PyTorch 速度很慢同时从多个源下载依赖查看 pip 下载日志只使用一个国内 index-url批量任务中部分机器仍报 404配置文件更新不全检查目标机器.condarc内容用配置分发脚本统一覆盖9. 最佳实践Plan B 之后的长期选型清华源停止 Anaconda 镜像后最怕的不是没源可用而是今天换一个源明天又换一个最后环境越搞越乱。这里给出几条长期建议。第一镜像源保持“一个主源 一个 conda-forge”的组合就够了。不要堆五六个镜像地址。conda 在频道解析时会对每个频道请求索引频道越多生成依赖图越慢失败回退的时间也会更长。第二先想清楚项目到底需要 Anaconda 默认仓库还是 conda-forge。如果是传统科学计算包比如 numpy、pandas、scipy阿里云或腾讯云的 Anaconda 仓库都可用。如果要用到较新的包版本conda-forge 更新更快但不能保证所有二进制包都齐。多数情况下优先用 conda-forge再把默认仓库作为补充。第三尽量锁定环境文件。团队协作时environment.yml要写清楚渠道和版本不要只写模糊的包名name: ml_env channels: - conda-forge - defaults dependencies: - python3.12 - numpy2.0 - pandas2.2 - scipy1.14创建环境时用conda env create -f environment.yml这样团队成员不管在哪台机器上创建环境行为都是一致的。第四重视“环境即代码”。服务器上的 conda 环境、pip 配置文件、镜像地址都应该纳入版本管理。可以通过配置仓库统一维护.condarc模板、requirements.txt 和 environment.yml避免某天镜像源变更后这台机器手动改、那台机器没改。第五如果厌倦了 conda 的复杂通道解析可以考虑 pixi 或 uv 这类更现代的工具。pixi 基于 conda-forge 生态但用 Rust 实现解析速度和锁文件体验比传统 conda 好很多。uv 则可以同时管理 pip 依赖和 Python 虚拟环境。对于新项目这两个工具很值得试但老项目不建议急于迁移先把当前 conda 源切换稳定。10. 总结与下一步清华源停止 Anaconda 镜像这件事本质上是一次外部资源变更。对个人开发者来说真正要做的只是把.condarc里的频道地址换成当前可用的国内镜像然后清理缓存验证一下。对团队和 CI 环境来说需要把配置模板、安装脚本和下载策略一并更新避免部分机器还停留在旧源上。先做的事是检查本机.condarc确认是否还在访问已经调整的清华 Anaconda 地址。如果发现有 404 报错按本文第 4 节替换默认频道第 6 节做四组验证。最容易踩的坑是只改default_channels忘记custom_channels导致 conda-forge 和 pytorch 频道仍然直连官方源速度慢或者解析失败。新装环境的用户建议直接从 Miniforge 开始。Miniforge 默认 conda-forge安装包小不涉及 Anaconda 发行版再分发条款问题也能用 mamba 提升安装速度。后续如果有内网部署需求再用 conda-pack 或 pip download 做离线缓存。镜像源永远只是工具链的一环。把环境配置文件、镜像选择和安装脚本固定下来下次再遇到类似调整时你只需要改一个模板文件就能让所有机器在几分钟内完成切换。
返回列表