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

资讯详情

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

Anaconda完全指南:安装配置、虚拟环境与PyTorch环境搭建

Anaconda完全指南:安装配置、虚拟环境与PyTorch环境搭建 先说结论不管你学数据分析、准备炼丹、搞爬虫脚本还是被导师丢来一句“先配个环境跑通代码”Anaconda 都是目前 Python 生态里让我感觉最省心的那套环境管理工具。它不是一个普通的 Python 解释器而是一个自带解释器、包管理器、虚拟环境、图形化界面和应用商店的“全家桶”。我这些年帮同事、学员处理过的环境问题一大半都集中在“Python 版本冲突”“装个包把系统搞崩”“项目间依赖打架”上而这些恰恰是 Anaconda 处理的强项。这篇博文不是给你念文档而是按我自己的实操路径来写从下载安装、换源、创建虚拟环境、配置 PyTorch 环境到 PyCharm / VSCode 对接再到我踩过的坑和解决办法一条龙讲清楚。新手可以照着抄老手也可以扫一眼看看有没有什么你还没用上的技巧。1. 为什么是 Anaconda先搞清楚它解决什么问题1.1 Anaconda 到底是个什么东西Anaconda 是一个 Python 的发行版自带 conda 包管理器预装了科学计算、数据分析和机器学习领域大量常用库。装一个 Anaconda相当于一次性把 NumPy、Pandas、Scikit-learn、Matplotlib、Jupyter Notebook 这些基本装备都配齐了省去装完 Python 再挨个 pip install 的折腾。跟单纯装 Python 相比Anaconda 最有价值的部分其实不是那堆预装库而是它自带的conda。conda 不仅能管理 Python 包还能管理虚拟环境甚至能管理 Python 解释器版本本身。这句话什么意思呢就是你可以在同一台机器上同时存在 Python 3.8、3.9、3.11 多个环境互不干扰想用哪个切哪个。这一点非常重要。很多新手上来就喜欢问“Anaconda 和 Python 有什么区别”其实更准确的理解是Anaconda 是一个带管理器的 Python 生态环境Python 是它的内核。你完全可以把 Anaconda 理解成一套房子Python 是房子里的水电conda 是物业虚拟环境则是房子里的一个个独立房间房间之间互不串味。1.2 它帮你解决哪三类最痛的问题第一类依赖冲突。比如说项目 A 需要 PyTorch 1.x项目 B 需要 PyTorch 2.x你要是只装一个 Python 环境装完这个卸载那个早晚崩溃。用 conda 创建两个独立虚拟环境各装各的互不影响这是 Anaconda 最核心的价值。第二类系统环境被污染。我见过不少人在系统 Python 里直接 pip install装到一半发现把某个系统工具依赖的包给覆盖了结果搞得机器上其他程序跑不起来。conda 虚拟环境天然隔离你在环境里怎么折腾都不会动到系统根基。第三类跨平台和环境复制。你在一台机器上创建好环境用 conda env export 导出配置文件换台机器一把梭直接恢复配合团队协作特别方便。这点对做科研、复现论文的尤其重要。1.3 Anaconda、Miniconda 怎么选版本要看哪个很多人在官网看到两个东西会懵Anaconda Distribution 和 Miniconda。Anaconda 是全套大礼包预装几百个包缺点是大安装包动辄 500MB 以上装完占用好几个 GB。Miniconda 则是一个轻量启动器只包含 conda 和 Python剩下的包你需要什么自己装。我的建议是如果你是新手或者嫌一个个装包麻烦直接上 Anaconda如果硬盘紧张、网络一般或者你很清楚自己只需要少量包选 Miniconda 反而更干净。至于 Anaconda 哪个版本好我的原则是不要一上来就追最新优先看自己用的深度学习框架、IDE 的兼容性。比如要装 PyTorch就去 PyTorch 官网确认它当前稳定版对 Python 版本的要求再选对应的 Anaconda 版本。一般来说Anaconda 2023.09 之后自带 Python 3.11PyTorch、TensorFlow 现在的版本兼容性都已经很成熟了不用太焦虑。2. 下载与安装全流程从官网到清华镜像2.1 官网下载慢直接用清华镜像Anaconda 的官网下载页是 anaconda.com/download如果你是国内网络直接点 Download 那个大按钮往往会卡到怀疑人生几十 KB/s 的速度能下到天荒地老。这种场景不要硬等直接用清华镜像站的 Anaconda 安装包归档地址是 mirrors.tuna.tsinghua.edu.cn/anaconda/archive/。在镜像页面里你会看到一长串形如 Anaconda3-2024.10-1-Windows-x86_64.exe、Anaconda3-2024.10-1-Linux-x86_64.sh 这样的文件。命名规则也不难懂Anaconda3 表示 Python 3 系列发行版后面是版本号和平台信息Windows 选 exeLinux 选 shmacOS 选 pkg 或 sh。下载时我习惯优先选最新的发布版但如果后续要装的深度学习框架对 Python 版本有硬性要求可能需要往旧一点的版本找。2.2 Windows 安装全程与关键选项双击下载好的 exe安装过程其实比较傻瓜但有两个地方必须注意否则后患无穷。第一个是安装路径。默认会装到 C 盘用户目录下比如 C:\Users\你的用户名\anaconda3。Anaconda 全家桶体积不小而且后续创建的虚拟环境默认也都在这个目录下C 盘不够大的话真的会爆。我的做法是提前在 D 盘建一个专门的软件目录把安装路径改到 D:\Anaconda3。需要强调路径里千万不要出现中文和空格这是 conda 工具箱的一个老毛病路径复杂了后续容易出莫名其妙的问题。第二个是安装过程中的环境变量选项。安装到这一步时界面里有个“Add Anaconda3 to my PATH environment variable”的勾选项不同版本提示略有差异。这个选项很关键勾上安装完可以直接在 CMD 或 PowerShell 里敲 conda但有可能和系统已有的 Python 冲突不勾后续要在 Anaconda Prompt 里操作或者自己手动配环境变量。我的建议是如果你是新手之前没装过 Python直接勾上让它加 PATH省事如果机器上已经有别的 Python或者你接下来要装很多其他开发工具建议不勾然后统一用 Anaconda Prompt 操作按需再配环境变量。环境变量配置方法后面第 6 节会细说。2.3 Linux 服务器安装与环境变量在 Linux 服务器上装 Anaconda 是我日常最常做的事远程服务器一般没有图形界面全靠命令行。先下载 sh 安装包到服务器然后执行bash Anaconda3-2024.10-1-Linux-x86_64.sh安装过程中它会问你是否接受协议、装到什么目录一路回车确认即可。走完后会提示是否执行 conda init 来初始化 shell这里建议选 yes。这样会在你的 ~/.bashrc 或 ~/.zshrc 里自动写入 Anaconda 的 PATH 和初始化脚本省得你手动配。如果当初你没选初始化或者用的是别的 shell也可以手动在 ~/.bashrc 里追加export PATH/你的安装目录/anaconda3/bin:$PATH然后执行source ~/.bashrc使其生效。装完验证一下conda --version能正常输出就说明环境变量没问题。另外提醒一句服务器上如果已经有系统自带的 Python这个 PATH 顺序很重要。把 anaconda3/bin 放到 PATH 前面才能保证你敲 python 的时候调到的是 conda 环境里的 Python而不是系统自带的。这个顺序问题非常经典我见过很多同学在服务器上打了半天 python 发现版本不对其实就是 PATH 里的先后顺序反了。3. 创建和管理虚拟环境Anaconda 的灵魂功能3.1 创建虚拟环境的底层逻辑虚拟环境的本质就是给每个项目单独隔离出一份 Python 解释器和包目录。你可能觉得奇怪装包直接装不就好了为什么要隔离因为 Python 的包与包之间、包与 Python 版本之间经常会互相踩脚。A 包的新版本依赖了一个新版本的底层库B 包又必须用老版本才能跑通两个包都在同一个环境里装来装去总有一天环境会坏掉。用 conda 创建虚拟环境可以直接指定 Python 版本这个能力强过很多其他工具。比如你只需要 Python 3.9 加基本科学计算包那就建一个专属环境不要拿默认 base 环境去造环境坏了重启成本极低。我自己有个习惯base 环境永远保持最干净所有实际项目都在独立虚拟环境里跑。这样 base 几乎不会出事。创建环境的命令是这样的conda create -n 环境名 python版本号比如conda create -n pytorch-env python3.9-n 是 name 的缩写后面跟环境名。conda 会自动找到该 Python 版本对应的包组合然后开始下载安装。这个过程如果比较慢基本都是源的问题可以先用第 4 节的换源方法配好清华源再继续。3.2 激活、退出与查看环境环境创建好以后工具的激活逻辑在不同系统里有点区别。Windows 用户在 Anaconda Prompt 里执行conda activate pytorch-envLinux / macOS 用户如果在安装时正确执行过 conda init同样用conda activate就行。这里需要注意老教程里的source activate在新版 conda 里已经不建议再用。如果你在终端看到 activate 命令不存在的提示大概率是 conda init 没初始化好或者用的是 CMD 而不是 Anaconda Prompt。激活之后命令行提示符前面会显示(pytorch-env)这种情况下你所有 pip、conda、python 命令都会作用在当前虚拟环境里。退出环境用conda deactivate查看当前机器上所有环境conda env list输出里会列出环境名和路径当前激活的环境前面会有星号。这个命令是我用的最频繁的一个排查问题时第一件事永远是确认自己在哪个环境里。3.3 克隆、导出与删除环境如果两个项目需要的依赖包差不多没必要重新一个个装直接克隆一份更快conda create -n 新环境名 --clone 旧环境名如果想把当前环境的包列表导出来方便换电脑或者给别人复现可以这样conda env export environment.yml然后在另一台机器上执行conda env create -f environment.yml这样项目依赖就能完整复制过去。不过要注意conda env export里面会包含一些平台相关的具体版本号换到不同操作系统时有时候会冲突。跨平台分享时我一般建议用conda env export --from-history environment.yml这个写法只保留你手动指定的包和版本不带传递依赖兼容性更高。删除环境也很简单不要直接删目录用命令conda remove -n 环境名 --all把环境整个清掉相关的目录也会一并删除。删除之前一定检查当前是不是已经退出了这个环境否则在 Windows 上经常因为文件被占用删不干净。3.4 配置 PyTorch 环境的完整示例标题热搜里被问得最多的就是“Anaconda 配置 PyTorch 环境”我直接给你走过一遍。创建一个新的虚拟环境指定 Python 版本比如 3.9conda create -n pytorch-env python3.9 conda activate pytorch-env然后根据你的设备情况安装 PyTorch。有独立 NVIDIA 显卡、要跑 CUDA 加速的去 PyTorch 官网按照提示选配置它会生成类似这样的命令pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121没有独显、或者只是想做一做 CPU 环境的 demo装 CPU 版就可以pip install torch torchvision torchaudio这里我想特别强调一个容易踩的坑不要在 conda 环境里混着装包。同一个虚拟环境要么主要用 conda 装要么主要用 pip 装混着来有时候会导致两个工具各自维护一套依赖信息时间长了互相覆盖环境状态会变得不可预测。我个人的习惯是用 conda create 建环境、指定 Python 版本之后第三方包基本都走 pip因为很多新库在 conda 官方源里更新没那么快pip 反而更有优势。装完后在 Python 里验证import torch print(torch.__version__) print(torch.cuda.is_available())如果cuda.is_available()返回 False大概率不是 conda 的问题而是你装的是 CPU 版本或者显卡驱动、CUDA 版本和 PyTorch 版本对不上这个可以去查对应版本的匹配表。另外如果你遇到类似ImportError: cannot import name mesh from simpeg这样的报错多半是当前虚拟环境里已安装的某个包版本过旧或更新了 API代码里from simpeg import mesh找不到它了。这种问题最好的排查办法不是硬改代码而是看对应包的文档确认新版本里模块有没有改名、是否需要额外安装相关子模块然后决定是升级包、装子模块还是在环境里装一个旧版本保证兼容。4. 换源与 403 问题下载慢的根治方法4.1 conda 换源为什么要做Anaconda 默认的软件源在国外国内直连速度经常惨不忍睹几十字节每秒都正常。体验过的人都知道创建一个环境卡在 Solving environment 半天不动或者下载到一半直接失败这种焦躁感足以劝退新手。解决办法就是把 conda 的下载源换成国内镜像目前国内最常用的是清华源。配置方式是在命令行执行两条命令把清华 conda 源加到配置里并设置显示频道地址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/main/ conda config --set show_channel_urls yes新版清华源里这两个还不够建议把 conda-forge 也加上。镜像站的说明页面写得比较清楚按最新推荐配置操作就行。配完以后你可以查看一下配置conda config --show channels如果看到前面加上了清华的地址说明配好了。以后创建环境、安装包都会自动走镜像下载速度会是之前的好几倍。4.2 pip 换源顺手也做掉conda 换完源pip 也别落下不然你都会在环境里是用 pip 装包的速度还是慢。pip 换源有两种方式一种是临时指定源pip install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple另一种是写进全局配置一劳永逸。Windows 用户执行pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simpleLinux / macOS 用户同样可以用这条命令配置文件会写到 ~/.pip/pip.conf 里。改完以后pip install默认就走清华源了另外几个常用备选还有阿里云、中科大源哪个速度快用哪个就行。4.3 UnavailableInvalidChannel HTTP 403 forbidden 怎么处理这个报错在热搜里出现了不止一次报错信息大致是UnavailableInvalidChannel: HTTP 403 forbidden for channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main我第一次遇到这个报错的时候也懵了一下403 不是权限问题吗其实绝大多数情况下不是你的权限有问题而是旧版 conda 在镜像源变更后访问方式不对。清华源调整过目录结构旧版本 conda 访问旧地址会得到 403或者你之前在 .condarc 里手动写了一些旧的、已经失效的 channel 地址。解决路径很简单conda config --remove-key channels conda update conda第一条命令是把 channel 配置恢复成默认清掉可能残留的坏地址第二条命令更新 conda 本体。然后再按前面第 4.1 节的方式重新添加清华源。如果更新 conda 的这一步本身就走得特别慢可以先给 conda 配一个临时可用的源再更新或者直接下载新版 Anaconda 安装包覆盖安装。总之记住遇到 403先检查 channel 配置和 conda 版本不要傻乎乎去折腾权限。这里也顺带说一下终端里配置 conda 源时尽量在命令里写全 URL不要用那种把http://或https://提交复制一半的写法很容易因为地址格式错误引出别的报错。5. 与 PyCharm 和 VSCode 集成把环境用起来5.1 PyCharm 配置 Anaconda 环境环境建好了IDE 却还用着默认解释器那相当于白建。PyCharm 连接 Anaconda 环境的思路其实非常简单告诉 PyCharm 这个项目要用哪个 Python 解释器。打开 PyCharm进入 File - Settings - Project - Python Interpreter点右上角的齿轮图标选择 Add Interpreter - Add Local Interpreter。在弹出的窗口里选 Conda Environment然后选择 Existing environment下拉框里就是你已经配好的 conda 环境列表选一个需要的PyCharm 会自动识别对应的 Python 解释器路径。要是列表里没有也可以点右边三个点的浏览按钮手动定位到 anaconda3/envs/ 你的环境名/python.exe 这个路径。选完之后项目里运行脚本就会用这个解释器。判断是否成功了很简单写一句import pandas然后运行能用就说明环境通了。这里有几个细节要提醒第一PyCharm 自己的 Terminal 窗口默认可能不激活 conda 环境这时候你在终端里敲 python 未必是当前环境。可以在 PyCharm 的设置里把 Terminal 的 Shell path 改成 Anaconda Prompt 对应的可执行文件或者干脆在 PyCharm 里直接用 Python Console。第二配置环境时不要选错了环境我经常看到有人项目明明要跑 A 环境解释器里选的却是 base 环境包一装结果全装错地方了。5.2 VSCode 配置 Anaconda 环境的两种方式VSCode 的配置逻辑跟 PyCharm 不太一样它是靠右下角或者命令面板选择解释器的。先安装 Python 扩展然后用快捷键 CtrlShiftP输入 “Python: Select Interpreter”在弹出的列表里就能看到 conda 的各个环境选中即可。第二种方式是直接在.vscode/settings.json里写死解释器路径{ python.defaultInterpreterPath: /你的路径/anaconda3/envs/项目环境/bin/python }两种方式各有利弊第一种灵活适合在多个环境之间切换第二种确定性强同一个项目不管谁打开都用同一个解释器团队协作时更友好。另外 VSCode 集成还有一个我很喜欢的功能是 Jupyter Notebook 内核选择。在 .ipynb 文件右上角选内核时能直接看到 conda 环境列表这样你在项目里不用切换窗口就能跑 notebook数据探索阶段效率提升很明显。5.3 环境变量配置的注意事项在你的 CMD 或 PowerShell 里能不能直接敲 conda取决于 Anaconda 有没有把可执行文件目录加进系统 PATH。Windows 10 以上系统可以在 设置 - 系统 - 关于 - 高级系统设置 - 环境变量 里找到 Path把 Anaconda 的三个路径加进去D:\Anaconda3 D:\Anaconda3\Scripts D:\Anaconda3\Library\bin加好之后重新打开终端执行conda --version验证。需要提醒的是如果你机器上本来就有其他 Python 安装PATH 里 conda 目录的位置很影响实际执行顺序。如果你想让 conda 优先接管 python 命令就要把 Anaconda 的路径放在其他 Python 路径的前面。顺序不对时你敲 conda 是好的但敲 python 起的却是另一个解释器这种割裂感非常折磨人。6. 常见问题与排查技巧实录6.1 conda 命令找不到终端里输入 conda 提示“不是内部或外部命令”、“command not found”九成是环境变量没配上。Windows 上重新进一次 Anaconda Prompt 就能用 conda 的说明 GUI 版的快捷方式已经帮你配好了只是 CMD 没配置。想在其他终端里直接用按 5.3 配 PATH 即可。Linux 上出现 command not found先看有没有执行过 conda init没有就手动把 export PATH 写进 .bashrc 再 source八成能好。6.2 Anaconda Navigator 闪退Navigator 是 Anaconda 自带的图形化启动器闪退问题在很多老版本上出现过。我遇到过两种一种是首次启动时卡在加载界面过一会儿自己闪没另一种是点了 Launch 直接退出。排查思路不复杂先看是不是版本太旧能进想进界面就别用 Navigator直接用命令行执行 conda update anaconda-navigator 升级如果升级后还闪退把 Anaconda 的日志目录清了再试路径一般在用户目录下的 .anaconda/navigator 里。另外老显卡、显卡驱动异常也可能导致 Navigator 这种基于 Qt 的界面闪退升级驱动或换 Anaconda 版本都能处理。6.3 激活环境时出现 warning终端里创建好环境执行 conda activate 时看到类似 WARNING: This Python interpreter is in a conda environment但 conda info 的 active environment 显示的还是 base。这种情况常见于 conda 命令和 Python 命令不是同一套环境变量导致的比如 Anaconda 装在 D 盘但 PATH 里的顺序被后来装的软件改掉了。解决思路是清理掉其他 Python 对 PATH 的干扰重新把 Anaconda 目录置顶然后在干净的终端里重新激活。要是问题依旧就直接更新 conda 后再试。6.4 环境装了很多包启动越来越慢没有哪个环境是越装包越快的包数量一多conda 解析依赖的时间自然会变长。这不算 bug而是使用习惯问题。我在实际项目中养成了几个习惯每个项目只用独立小而全的环境不装用不到的包重装大版本前优先用 pip 清点 requirement-list 导出定期删除不再用的废弃环境。这些习惯能明显减少环境膨胀引发的问题。6.5 彻底卸载重装 Anaconda如果环境已经烂到无法修复卸载重装反而比手工修更省时间。Windows 下卸载有两个步骤先去设置或控制面板里卸载 Anaconda 程序然后手动清理残留目录包括安装目录比如 D:\Anaconda3、用户目录下的 .conda 和 .anaconda 文件夹以及开始菜单里的快捷方式。Linux 下卸载相对简单直接把安装目录删除再把 .bashrc 里 Anaconda 相关的 PATH 和 conda init 内容注释掉就行。卸载重装之后记得第一时间配好清华源避免第二次安装又卡在下载源上。7. 写在最后的一点个人体会我用 Anaconda 少说也有六七年了从最早只有 conda 基本命令用起到后来做项目、带新人、搭服务器环境它一直是我 Python 工作流里最依赖的一环。如果非要说有什么最重要的建议那就是从一开始就把 base 环境保护起来所有项目都进独立虚拟环境。这个习惯能帮你避免掉 80% 以上的环境灾难也让你在装任何新库的时候都能放开手脚坏了直接删环境重建一分钟满血复活。另一件值得提的事是网上关于 Anaconda 的教程鱼龙混杂很多教你“在 base 里直接装 PyTorch”“用 pip 装一堆包然后再删掉”这些操作短期能跑通长期是给自己埋坑。环境管理这件事前期多花五分钟建立好习惯后面省下来的时间绝不是五分钟那么简单。最后再分享一个小技巧每次开始一个新的数据或深度学习项目我会先创建一个按项目功能命名的环境然后把环境配置写进项目的 README 里甚至直接放一个 environment.yml 在仓库里。这样不管是我自己隔几个月回来跑代码还是别人接手项目都能用最快速度把环境复现出来。Anaconda 这东西用的越深越会明白它真正的价值不是那个图形界面而是背后这套可复制、可隔离、可回滚的环境管理思路。
返回列表