ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

清华镜像配置指南:conda与pip加速安装Python库

2026/10/2 10:09:54 拓冰建站 浏览量
清华镜像配置指南:conda与pip加速安装Python库 刚刚把 Anaconda 装好第一次跑conda install pandas盯着进度条转了十分钟最后弹出一个CmdHTTPError。这种经历我相信国内不少玩 Python 的兄弟都遇到过。我每次帮新同事配环境第一件事就是把 conda 和 pip 的源切到清华镜像别问为什么问就是能救命。清华镜像mirrors.tuna.tsinghua.edu.cn是清华大学 TUNA 协会维护的开源镜像站Anaconda 仓库的各个频道、PyPI 包索引它都有完整同步。这篇文章我就把从下载 Anaconda、写.condarc、切 pip 源、建虚拟环境到平时踩过的一堆坑完整过一遍。如果最近你正被“官方源下载慢、装包老失败”折磨这篇应该能帮你省下不少时间。1. 为什么非用清华镜像先搞懂 conda 和镜像源的关系1.1 conda 的 channel 机制到底是什么Anaconda 不只是一个 Python 发行版它自带了一个跨平台的包管理器叫 conda。conda 装包时不是像普通软件一样随便从哪个网站下载而是去一个叫 channel频道的仓库拉取元数据和安装文件。你可以把 channel 理解成一个大型仓库。官方默认的 channel 在repo.anaconda.com服务器在海外。每次执行conda install numpyconda 会先请求这个仓库的repodata.json索引文件比对当前环境的依赖再下载对应的.conda或.tar.bz2包。国内网络环境访问海外服务器经常出现三种情况一是索引文件下载超时二是一个包下到一半断流三是速度长期停留在几十 KB/s。清华镜像做的事情很朴素把 Anaconda 官方仓库完整同步到国内服务器让 conda 在拉取repodata.json和安装包时访问的是国内地址。这一步操作的实际体验提升是肉眼可见的我之前在同一台机器上测过从官方源装一个 500MB 的包耗时四十分钟镜像源大概两三分钟搞定。这不是玄学就是物理距离和带宽的差距。1.2 清华镜像到底镜像了些什么很多新手以为“清华镜像”只是提供 Anaconda 的安装包下载其实它的覆盖面比你想的大得多。TUNA 的 Anaconda 镜像仓库里至少包含这几块anaconda/archive/Anaconda 官方安装包的历史版本从 1.x 到最新的 2024.10 都有。anaconda/miniconda/Miniconda 安装包合集适合不需要全家桶的人。anaconda/pkgs/main、pkgs/r、pkgs/msys2Anaconda 官方主频道、R 语言频道、Windows 下的 msys2 频道。anaconda/cloud/社区常用频道比如conda-forge、bioconda、pytorch、msys2等全部同步放在这个目录下。对普通用户来说这意味着 conda 能装的包清华镜像基本都有副本pip 能装的包TUNA 还单独维护了一个 PyPI 镜像https://pypi.tuna.tsinghua.edu.cn/simple。也就是说配一次清华源conda 和 pip 两条线都能提提速。不过要提醒一句镜像站的同步不是实时的通常有数小时甚至一天的延迟。某个包的“最新版”在官方源刚发布镜像上可能要等几天。这属于正常现象别以为是自己配置坏了。1.3 什么样的人最适合用清华镜像我根据自己帮别人配环境的经验觉得下面这几类人受益最大网速不稳定、访问海外源经常超时的国内开发者。公司内网 / 学校机房这种出口带宽受限的环境。做数据科学、深度学习方向的用户因为要反复通过 conda 和 pip 安装大量科学计算包。需要在新服务器上快速搭建 Python 环境的人比如我这种经常把服务器当玩具折腾的。说白了只要你的开发环境在国内清华镜像就是性价比最高的加速方式。它不是万能的但没有它装环境这件事会痛苦很多。2. 安装环节从清华镜像拿 Anaconda 并装进系统2.1 在清华镜像挑选合适的 Anaconda 安装包很多人习惯去官网下载 Anaconda然后被那个慢悠悠的下载速度劝退。其实清华镜像的 archive 目录下就有全部 Anaconda 历史版本浏览器直接访问https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/按时间排序找到最新的一版就可以。文件命名是有规律的比如Anaconda3-2024.10-1-Linux-x86_64.sh、Anaconda3-2024.10-1-Windows-x86_64.exe等。里面几个关键信息2024.10是版本号Anaconda 每年更新两次左右。Windows/Linux/MacOSX是系统类型。x86_64是 64 位 Intel/AMD 架构如果是 Apple SiliconmacOS 版本要选arm64。如果你只是需要一个“能跑 conda 的 Python 环境”我更推荐 Miniconda它在清华镜像也有独立目录https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/。Anaconda 装完自带几百个预装包体积好几个 GB里面大量包你可能根本用不到Miniconda 只带 conda 和 Python体积小装完想用啥自己conda install就行。服务器上我基本都用 Miniconda。2.2 三大平台的安装步骤下载完成后安装这一步虽然简单但有几个坑我分别说。Windows 用户就是双击.exe一路 Next。唯一一个值得留意的选项是安装过程中会问Add Anaconda3 to my PATH environment variable。我的建议是如果这台机器上已经装过别的 Python千万别勾选如果是一台干净机器勾选也行。勾选后虽然可以在 cmd 里直接敲 conda但也可能把系统原有的 Python 环境搅乱一旦 PATH 冲突会让后续调试很痛苦。安完最好用 Anaconda Prompt 操作省心很多。macOS 用户如果是.pkg格式双击安装即可如果是.sh格式和 Linux 一样在终端里跑。Linux 上的安装方式最标准。切换到你存放安装包的目录然后执行bash Anaconda3-2024.10-1-Linux-x86_64.sh接下来会连续输出协议内容一直按回车或者输入yes确认。安装目录默认在当前用户 home 下比如/home/用户名/anaconda3通常不用改。最后一步会提示是否运行conda init建议选 yes这样 shell 会自动配置好 conda 的环境变量。安装完成后新开一个终端执行conda --version看看能不能输出版本号。如果提示command not found说明环境变量没有生效手动执行一下source ~/.bashrc如果你用的是 zsh就把.bashrc换成.zshrc。实在不行直接手动把 conda 目录加入 PATHexport PATH/home/用户名/anaconda3/bin:$PATH2.3 安装完成后的第一波配置顺序新装完的 Anaconda还没配源的时候默认还是会连官方源。我习惯按下面这个顺序操作能避免第一次跑conda update时卡半天执行conda config --set show_channel_urls yes生成.condarc配置文件。编辑.condarc把默认 channel 切到清华镜像下一章详细讲。执行conda clean -i清掉旧索引缓存。再执行conda update -n base conda把 conda 自身更新到最新版。记住这个顺序很多时候你还没切源就去conda update结果就是无限等待最后报超时错误白白浪费时间。3. 配置环节三分钟把 conda 和 pip 同时绑到清华源3.1 手把手写一份正确的 .condarc.condarc是 conda 的核心配置文件Windows 下在C:\Users\你的用户名\.condarcLinux 和 macOS 下在用户主目录~/.condarc。文件不一定默认存在执行过conda config相关命令后会自动生成。直接打开这个文件把内容改成下面这样channels: - defaults show_channel_urls: true default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud这段配置里channels下面写defaults并不是说要访问官方源而是告诉 conda 去读default_channels里定义的三个目录。custom_channels是把常用的社区频道映射到清华 cloud 路径下这样以后执行conda install -c conda-forge xxx或-c pytorch时conda 会自动访问清华镜像而不是直接打海外站点。这里一定要踩的坑是不要在.condarc里同时把清华、中科大、阿里云三个源全写进去。我见过有人为了“保险”写了一大堆 channel结果 conda 解析索引时反而变得非常慢还容易 404。认准一个主源留一两个备源改成注释放旁边应急时再切这才是正确用法。3.2 conda 配置的验证套路改完.condarc光保存是不够的必须让 conda 重新拉一次索引。顺序执行以下命令conda clean -i conda infoconda clean -i会清除旧的索引缓存强制 conda 下次去镜像站拉取新的repodata.json。conda info输出里会有一行channel URLs你检查一下这些 URL 是否都指向mirrors.tuna.tsinghua.edu.cn确认了基本就成功了。更直接的验证方式是装一个小包试试速度比如conda install -y numpy如果下载速度明显变快说明配置生效。如果发现日志里还是去访问repo.anaconda.com那就说明.condarc没被正确解析。常见原因是文件保存到了错误目录、文件名拼错注意开头有个点.或者 YAML 格式不对。3.3 pip 源也一起切了conda 源配好之后pip 的源也别忘。清华 TUNA 的 PyPI 镜像地址是https://pypi.tuna.tsinghua.edu.cn/simple用法有两种。临时指定适合偶尔手动装一个包pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple永久配置适合长期使用。一把梭执行pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple设置完之后可以用pip config list查看当前配置。注意这个配置默认是写在用户级别的pip.confLinux/macOS或pip.iniWindows里的所以对 conda 创建的虚拟环境同样生效。有时候你会看到WARNING: Ignoring invalid distribution之类的日志多数是旧版本 pip 的~/.local目录里有残留不影响大碍。3.4 有没有必要把 conda-forge 也走镜像很多包默认的main频道里没有只能走conda-forge。比如一些比较新的数据处理工具、甚至 mamba 本体都需要从conda-forge安装。我在.condarc里加的custom_channels就是干这个用的。只要你执行了类似这样的命令conda install -c conda-forge mambaconda 会去解析conda-forge这个 channel 的路径。因为custom_channels里已经把conda-forge映射到https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge所以下载同样走清华速度自然快。这条配置不加也能用但加了你才会发现从conda-forge装包也能快得像飞。4. 使用环节虚拟环境、科学计算和深度学习实践4.1 用 conda 创建虚拟环境并妥善管理conda 最实用的功能之一就是虚拟环境。它能把不同项目的依赖隔离开避免 numpy 装了这个版本、pandas 又要求另一个版本的冲突地狱。几个常用命令我直接列出来conda create -n py310 python3.10 -y conda activate py310 conda deactivate conda env list conda env remove -n py310 -yconda create -n py310 python3.10的意思是创建一个名为py310的环境同时安装 Python 3.10。-y是自动确认。我的习惯是永远不在 base 环境里直接装包。base 环境相当于是 Anaconda 的“系统目录”装乱了会影响所有项目。每个项目独立一个环境名字按项目或 Python 版本起用完了直接删掉也不心疼。这里补充一个重要经验如果你新装的环境里执行python还是指向 base八成是conda activate没有成功先看看终端的提示符前面有没有出现环境名。Windows 下如果conda activate报错很可能是没有先运行conda init powershell或conda init cmd。4.2 科学计算全家桶安装数据科学方向最常用的一套包用 conda 装其实很方便conda install -y numpy pandas matplotlib scipy jupyter这四个包加 Jupyter基本覆盖了数据清洗、数值计算、画图和交互式开发场景。用 conda 装 numpy 和 scipy背后会链接到 conda 管理的 BLAS/LAPACK 等底层库性能通常比自己手动编译稳定得多。装完之后想启动 Jupyter Notebook 就在终端执行jupyter notebook。如果你是在某个虚拟环境里启动 Jupyter却发现在网页里import pandas失败是因为当前环境没注册到 Jupyter 里。可以再执行一遍python -m ipykernel install --user --name py310 --display-name Python 3.10 (py310)之后在 Jupyter 的新建内核列表里就能看到对应环境了。4.3 深度学习框架的安装体验深度学习框架里面PyTorch 的场景最有代表性。早期网上大量教程让你直接去官网复制 conda 命令但那个命令默认从download.pytorch.org拉包很多人在这一步卡一上午。配好清华镜像后情况完全不一样。CPU 版本最简单的装法conda install pytorch torchvision torchaudio cpuonly -c pytorch由于前面custom_channels已经把pytorch映射到了清华 cloud 路径这条命令会走清华镜像拉包。如果遇到依赖求解很慢可以试装一个 mamba 来替代 conda installconda install -y mamba -c conda-forge mamba install pytorch torchvision torchaudio cpuonly -c pytorchmamba 用的是 C 写的求解器解决依赖的速度比 conda 老牌求解器快很多我第一次用的时候直接被震撼到了。如果电脑有 NVIDIA 显卡想装 CUDA 版本的 PyTorch命令要多带一个pytorch-cuda指定版本比如mamba install pytorch torchvision torchaudio pytorch-cuda12.1 -c pytorch -c nvidia需要提醒的是CUDA 版本的包体积动辄几个 GB即使走了清华镜像下载时间也比 CPU 版长不少别以为自己卡住了。4.4 环境导出与复现虚拟环境的配置如果不做记录过几个月自己都未必记得装了哪些包。所以我习惯给每个重要环境导出一份environment.yml。导出conda env export environment.yml复现conda env create -f environment.yml这个文件会记录环境名、Python 版本、所有已装包及版本号包括 pip 装的包。换新电脑、给同事部署代码时直接给一份environment.yml比发一篇万字安装教程靠谱得多。5. 实战避坑我踩过的那些镜像源相关坑5.1 CmdHTTPError 或 HTTP 404这个错误在我刚开始用清华源时经常出现后来排查多了原因基本跑不出这三类。第一类.condarc里的 channel 路径写错。比如把pkgs/main写成了pkgs/main/或者把官网的路径原样搬过来。第二类镜像站的某个子仓库暂时没同步好或者你访问的包在镜像上根本不存在。第三类索引缓存没有清理conda 还在用旧索引访问的路径已经失效了。排查方法很简单先用浏览器或 curl 访问你配置的 URL比如curl -I https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/repodata.json如果返回 200说明源没问题问题在本地配置。如果 404那就换个路径或者确认包是否存在。本地处理一般是先conda clean -i再用conda info检查 channel 列表。5.2 SSL 证书错误CondaHTTPError: SSL verification failed这个报错常见于公司内网、学校网络或者本机设置了系统代理的情况。排查的时候先看环境变量里有没有代理env | grep -i proxy如果有代理代理服务器自身的证书可能不被 conda 信任导致握手失败。这个时候直接去改.condarc关闭证书验证并不推荐因为会带来安全隐患。更建议的做法是检查代理的配置是否正确或者在 conda 环境里临时只对某个请求忽略验证conda install -y numpy --insecure--insecure参数只对当前命令生效不需要污染全局配置。等确认网络环境正常后再执行conda config --remove-key ssl_verify把可能的残留配置清掉。5.3 系统里同时有多个 Python乱套了很多机器上本身就装了系统级 Python又装了 Anaconda还装了 Visual Studio 自带的 Python版本一多就容易“乱套”。最典型的现象是你明明conda activate了环境执行pip install结果包装到了系统的site-packages里然后程序 import 不到。我的建议是在 conda 环境里所有 pip 操作都用下面这种写法python -m pip install 包名python -m pip会确保 pip 跟当前激活的 Python 是同一个而不是从 PATH 里随机挑一个 pip。另外排查时可以用which pythonWindows 用where python看看路径指向哪里一目了然。5.4 Solving environment 卡死conda install一直卡在Solving environment这一步有时候一等就是十分钟甚至更久。这个问题的根源是 conda 的依赖求解器太重了尤其是安装 PyTorch、安装新版 Python 这种涉及大依赖树的操作。我在第 4 章提过用 mamba这里再补充另一个更轻量的方案。新版 conda 其实自带了一个基于 libmamba 的底层求解器可以这样开启conda config --set solver libmamba开启之后再跑conda install会发现解析速度快好几倍。如果你用的 conda 版本太老没有这个配置项直接上 mamba 就好。5.5 镜像拉大包时偶尔断流有时候安装 PyTorch 或 cudatoolkit 这种几十 MB 到数百 MB 的大包进度条走到一半突然断了重新执行安装命令又从头开始下载非常浪费时间。这个问题的原因不一定是镜像挂了可能是网络中间链路不稳定。我的土办法是尽量错开晚高峰比如上午十点左右下载速度快。分步安装先装 cudatoolkit再装 torch不要一次性把所有包都丢给 conda 解析。如果下载真的反复失败尝试用curl直接下载那个.conda包再用conda install 本地文件路径安装。本地文件安装的命令大致是这样conda install /path/to/package.conda不算什么优雅方案但关键时刻能救急。这里再汇总一下常见报错和处理思路方便大家对照参考错误现象可能原因处理方式CmdHTTPError 404channel 路径错误 / 缓存索引过期检查.condarc执行conda clean -iSSL verification failed代理或证书不匹配检查代理临时用--insecureSolving environment 卡死conda 求解器太慢开启 libmamba solver 或改用 mambaconda 命令找不到PATH 没配置好source ~/.bashrc或手动设置 PATHpip 装到了错误环境多 Python 混用用python -m pip install规避下载大包断流网络链路不稳定错峰下载、分步安装、手动下载后本地安装我自己现在每台新 Linux 服务器落地前两道命令一定是配 conda 源和 pip 源装完再搞别的。清华镜像用到现在唯一要记住的是别在多个源之间反复横跳认准一个主源再留一两个备源就够了。最后再分享一个小技巧把配置好的.condarc内容存一份在自己的笔记或代码仓库里换机器时直接复制粘贴省得重新回忆各种路径。镜像站不是万能的它只是把官方仓库复制到国内同步有延迟、偶尔会有文件索引还没更新的情况但大多数时候它能让你少等好几个小时的转圈。