ARTICLE DETAIL

资讯详情

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

Miniconda还是Anaconda?Python环境管理+镜像源配置全攻略

Miniconda还是Anaconda?Python环境管理+镜像源配置全攻略 别的不说凡是折腾过 Python 环境的人大概率都经历过这么一段心理斗争到底是装 Anaconda 还是 Miniconda网上一搜清一色的“Anaconda 开箱即用、省心”“Miniconda 轻量、干净”但真到自己动手装的时候还是拿不准。尤其是国内网络环境下装完还得配镜像源不然光是下载就能让人怀疑人生。我个人的答案是默认无脑选 Miniconda除非你极度不想碰命令行、也不想了解环境是什么东西。为什么这篇文章一次讲透顺便把 Windows 和 Mac 双平台的安装、镜像源配置、虚拟环境创建全部过一遍照着抄作业就行。先说清楚一件事——我们装 Anaconda 或者 Miniconda本质上装的不是“Python 解释器”本身而是一套 Python 环境管理工具核心是 conda 这个包管理器。conda 解决的是“不同项目需要不同 Python 版本、不同依赖版本”的问题。没有它你会在“卸载重装 Python”和“依赖冲突”之间反复横跳直到心态爆炸。镜像源配置则是国内用户的生存刚需。默认 conda 源在国外下载慢不说还经常断流。配置清华或阿里镜像源之后速度和稳定性完全是两个世界。这步不做后面的体验会直接劝退一批新手。1. Anaconda 和 Miniconda 到底差在哪别被体积骗了很多人在选型时只会看到“Anaconda 很大Miniconda 很小”然后以为小的就是精简版、功能被阉割。这个理解不能说全错但方向完全偏了。1.1 核心差异预装包数量而不是能力差异Anaconda 本质上 conda Python 数百个预装的数据科学包。Miniconda 本质上 conda Python pip 少量必需依赖。两者的 conda 管理器本身没有差别命令兼容配置兼容你用 Miniconda 创建的虚拟环境和 Anaconda 创建的虚拟环境没有任何区别。那这数百个预装包意味着什么意味着方便也意味着臃肿。安装 Anaconda 之后base 环境里瞬间多出 numpy、pandas、matplotlib、scikit-learn、jupyter 这些常用库确实省去了逐个安装的麻烦。但代价也明显安装包体积 3GB 左右Miniconda 只有 80~100MB差了 30 倍。base 环境默认启动就加载大量包conda 的solve过程在安装新库时会更慢。长期不用的包堆在环境里占磁盘不说升级的时候还可能引入版本冲突。我见过很多人装了 Anacondapip list 一看上百个包有一半根本不知道自己什么时候装过也不敢乱删。这种“开箱即用”在数据科学教材里很友好但真到做项目、部署、写生产级代码时就是纯负担。1.2 适用场景你是哪种用户就选哪种按我的经验选型基本看三条如果你完全是新手只想尽快把 Python 跑起来不太想理解虚拟环境、通道这些概念就想有个能运行的环境立刻开始调包Anaconda 省事。如果你要跟着数据分析、机器学习方向的教材/网课走教材里大量例子直接用from sklearn import xxx、import tensorflow as tfAnaconda 能保证这些包都在不用边学边装。如果你打算长期写 Python或者要部署项目、做自动化脚本、整理自己的工具链Miniconda 绝对更适合你。空的 base 环境 按项目建虚拟环境是最干净的实践。我自己最早从 Anaconda 转向 Miniconda 的契机是某次升级包时 conda 在 base 环境里解依赖解了快二十分钟最后还报了一个版本的冲突。后来换成 Miniconda 之后每个项目单独建环境再也没被这种全局依赖绑架过。说白了Anaconda 是一键全装的“全家桶”Miniconda 是一场“从零搭建”的 DIY。选哪个取决于你想“快速跑通”还是“长期可控”。快速跑通当然没错但大多数人的真实需求其实是长期写代码所以我默认推荐 Miniconda。1.3 一个很容易忽略的坑base 环境不建议直接装包不管选哪个我强烈建议你把 base 环境当成“干净的管理员”来用别往里面装项目依赖。正确的姿势是用 conda 创建独立的虚拟环境每个环境对应一个项目或一类项目base 只保留 conda 本身和 pip。这样做的理由很现实。Python 社区依赖的版本兼容问题是无底洞今天装 A 库要求 numpy1.24明天 B 库要求 numpy1.25全塞 base 里早晚爆发冲突。虚拟环境等于给每个项目单独划了一块地盘互不影响。后面我会专门讲怎么创建和使用虚拟环境这是比选 Anaconda 还是 Miniconda 更重要的事情。注意网上很多教程让你装完 conda 之后立刻conda install xxx把各种包装在 base 里这条路我劝你直接跳过。哪怕现在觉得单个项目无所谓后面项目多起来一定会后悔。2. 保姆级安装教程Windows 和 Mac 分开讲安装 conda 的大前提是先卸载干净旧版本。如果你机器上已经装了 Anaconda 又要换 Miniconda先控制面板卸载再手动删掉残留的Anaconda3或miniconda3目录同时检查环境变量里是不是还有 conda 相关的路径。不清理干净的话新装完可能会串版本命令行输入 conda 调用的不是新装的这个排查起来非常烦。2.1 Windows 安装全流程打开官网下载页Miniconda 官方地址是docs.conda.io/en/latest/miniconda.html往下拉找到 Windows 安装包列表。选Miniconda3-latest-Windows-x86_64.exe64 位系统选这个不要选 x86 版。双击安装包一路 Next。这里的坑点是安装路径默认是C:\Users\你的用户名\miniconda3这个路径建议不要改不要装到C:\Program Files\这种带空格的目录否则后续一些工具链会认不出路径。到达Advanced Installation Options这一步有两个复选框Add Miniconda3 to my PATH environment variable这个默认不勾建议勾上。虽然官方推荐不勾但勾上能省去后续手动配 PATH 的麻烦。Register Miniconda3 as my default Python 3.x默认勾着保留即可。安装完成后打开“开始菜单”能看到一个Anaconda Powershell Prompt (Miniconda3)这个是 conda 自带的终端入口。打开之后输入conda --version能输出版本号就算装好了。如果打开普通 PowerShell 或 CMD 输入 conda 提示找不到命令大概率是环境变量没生效。重开终端还不行就手动把miniconda3、miniconda3\Scripts、miniconda3\Library\bin三个路径加进系统环境变量 PATH然后重开终端。Windows 下还有一个容易踩的点如果你装了多个 Python包括微软商店的 Python或者 pyenv-win安装之后命令行里python指向谁就变成玄学了。建议安装完 conda 之后执行where python看返回的第一个路径是不是 miniconda3 目录下的如果不是就要调整环境变量顺序。2.2 Mac 安装全流程Mac 分 Intel 芯片和 Apple SiliconM1/M2/M3芯片安装包一定不能选错。同样打开官方下载页往下拉找 macOS 安装包Intel 芯片选Miniconda3-latest-MacOSX-x86_64.pkg或者对应的 sh 脚本。Apple Silicon 选Miniconda3-latest-MacOSX-arm64.pkg或者 sh 脚本。怎么看芯片版本左上角苹果图标 → 关于本机处理器一栏写的是 M1/M2/M3 就选 arm64写 Intel 就选 x86_64。.pkg格式是图形化安装双击按提示步骤走安装目录默认是/Users/你的用户名/miniconda3建议保持默认。如果你更习惯命令行安装可以下载.sh脚本后在终端执行bash Miniconda3-latest-MacOSX-arm64.sh中间会问是否添加到 shell 配置文件输入yes。脚本会自动往~/.zshrc写入 conda 初始化代码。安装完重开终端输入conda --version验证。安装完后首次激活需要执行一次conda init zshIntel 芯片或老系统是conda init bash如果安装脚本已经自动处理过跳过这步。Mac 下有个老生常谈的问题系统自带的 Python 是/usr/bin/python3千万别去动它。装 conda 之后每次打开终端conda 会自动激活 base 环境如果安装时默认开启了 auto_activate_base你的python命令就指向 base 环境里的 Python 了和系统自带的是两个世界。2.3 安装完成后的第一件事升级 conda不管你装的是哪个平台装完后的第一件事是执行conda update -n base conda这会把 conda 本身升级到最新版很多奇怪的 bug 都是旧版 conda 才有的。如果这一步卡住或者极慢说明你还没配镜像源先跳到下一节把源配好再回来升级。3. 镜像源配置清华源和阿里源的完整攻略配镜像源这件事Python 生态里要分清两个概念conda 源和 pip 源。conda 源负责conda install下载pip 源负责pip install下载。两者互不影响都要配。3.1 conda 镜像源设置清华 TUNA清华源的地址经历过大调整现在2024 年后推荐用https://mirrors.tuna.tsinghua.edu.cn/anaconda/这个根路径下的几个子源。终端执行以下命令conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --set show_channel_urls yes这几条命令做了什么--add channels是把源地址追加到配置列表里越晚添加的优先级越高所以顺序是有讲究的。conda-forge通道承载了大量第三方包的构建建议加上。--set show_channel_urls yes是让 conda 安装时显示包来源方便排查问题。想要验证配置用conda config --show channels能看到 channels 列表就是设置成功的。实际操作中我建议把 conda-forge 排在前面因为 conda 在解决依赖时按通道顺序查找conda-forge 的包版本更全能避免一部分“PackagesNotFoundError”的问题。3.2 pip 镜像源设置pip 源配置和 conda 无关但几乎所有人都会用到pip install。国内最常用的是清华 PyPI 源地址是https://pypi.tuna.tsinghua.edu.cn/simple。临时使用pip install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple永久配置执行pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn第一条是设置全局索引地址第二条是把这个域名加入信任列表防止 SSL 证书验证报错。这两行执行完之后所有pip install默认走清华源。分不清自己想用哪个源的话记住一个原则清华源稳定、同步快、承载高阿里源也行但实测下来清华的 pip 和 conda 源响应速度更稳定。注意部分老教程里让你配https://mirrors.aliyun.com/anaconda/或者旧版清华路径https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/这些地址在新版 conda 里可能因为路径变化失效。如果遇到 404直接换成我上面写的新版路径。4. 虚拟环境创建与多 Python 版本共存实战安装和镜像源都搞定之后接下来要操练的是 conda 的核心能力——虚拟环境管理。这一节讲的是实操建议边看边跟着做。4.1 新建、激活、退出、删除固定四件套创建一个虚拟环境的命令是conda create -n 环境名 python3.11-n是--name的缩写环境名自己起建议用英文、小写、下划线连接比如nlp_project、scrapy_env。python3.11指定了环境里的 Python 版本你完全可以建一个 Python 3.9 的环境、再建一个 3.12 的环境互不冲突。创建过程会让你确认是否安装输入y回车。下载依赖包走的是镜像源这时候如果你配好了清华源应该很快。激活环境Windowsconda activate 环境名Mac/Linux同样是conda activate 环境名退出当前环境conda deactivate删除一个不要的环境conda remove -n 环境名 --all4.2 复制环境和导出依赖清单项目搬家不再怕我平时最常用的两个辅助操作复制环境和导出依赖。比如你在 base 或者已有环境里调好了一整套版本组合想给另一个项目复制一份conda create -n 新环境名 --clone 旧环境名迁移到另一台机器先把依赖导出成文件conda env export environment.yml新机器上执行conda env create -f environment.yml这就完成了整套环境的迁移。比手动一个个pip install靠谱得多尤其是有几十个依赖包的项目。4.3 装 PyTorch 这类大型库时怎么“半 conda 半 pip”配合数据科学和深度学习项目里最典型的需求是装 PyTorch。官网提供的命令会选择 conda 和 pip 两种渠道我的建议是优先用 pip 装 PyTorch原因很实际pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu如果是 NVIDIA GPU 版本先去官网生成对应命令。GPU 版 PyTorch 的 conda 包在清华源和 default 源里经常出现版本滞后pip 渠道反而更快、更直接。之前踩过一个坑用 conda 装 PyTorch 时触发了对整个环境的重算conda solver 在 conda-forge 和 pytorch 通道之间拉扯卡了十几分钟还没结果。换成 pip 之后一分钟解决问题。所以我的习惯是conda 负责 Python 版本和系统级依赖pip 负责大型第三方库混合使用反而比全押 conda 更高效。5. 常见问题排查与避坑建议速查表内容到这里基本上该踩的坑都在下面。拿不准的时候回来翻这张表。现象原因解决办法终端找不到 conda 命令Windows环境变量 PATH 未正确配置手动把 miniconda3、Scripts、Library/bin 加入系统 PATH重开终端终端找不到 conda 命令Macconda init 未执行或 shell 配置未加载执行conda init zsh重开终端检查~/.zshrc是否有 conda 初始化代码安装下载巨慢或卡住未配置镜像源按第 3 节配置清华 conda 源再执行conda update -n base condaPackagesNotFoundError包不在当前配置的 channels 里添加 conda-forge 通道conda config --add channels conda-forge重新安装pip 安装报 SSL 证书错误使用了 http 协议源或未信任域名执行pip config set global.trusted-host pypi.tuna.tsinghua.edu.cnbase 环境默认自动激活每次开终端都显示(base)conda 默认设置了 auto_activate_base不想自动激活执行conda config --set auto_activate_base False在 base 里装了很多包后面全乱套了base 环境被污染导出依赖删除 base 重建或者干脆卸载 conda 重装新装后只在虚拟环境中装包32 位的 conda 装不上新包装了 x86 版而不是 x86_64卸载重装x86_64安装包Apple Silicon 机器选 arm64 包以上这些坑我全都踩过大部分都是刚开始用 conda 时随手埋下的。说句实在话conda 本身很可靠出现问题的根源通常只有一个——在错误的环境里做了错误的事。写在最后我的一点实操体会折腾 Python 环境这些年最大的体会可以用一句话总结环境管理的核心不是“装得多”而是“管得清”。Anaconda 和 Miniconda 的区别只是起点真正拉开差距的是你舍不舍得花十分钟把虚拟环境的习惯建立起来。我个人现在的日常是Miniconda 打底每个项目一个虚拟环境conda 管 Python 版本pip 管第三方包镜像源常驻清华。这套组合跑了两年多几乎没有因为环境问题卡过项目。如果你还在犹豫用什么按这个思路操作不会错。最后一个实用小技巧给环境命名时加一个项目名 Python 版本的后缀比如nlp_312、web_310。过两个月再回头看一堆环境你能一眼认出哪个是干嘛的不会对着环境列表发呆。
返回列表