ARTICLE DETAIL

资讯详情

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

Anaconda安装配置完全指南:虚拟环境、镜像源与PyTorch实战

Anaconda安装配置完全指南:虚拟环境、镜像源与PyTorch实战 如果你是一个刚入门 Python 的开发新手或者是搞数据分析、机器学习、深度学习的研究者那么“Anaconda安装和配置”这六个字可能就是你未来几天反复搜索的高频词。这篇文章我想结合自己这些年在 Windows、Linux、macOS 上折腾 Anaconda 的经验把从下载、安装、环境变量配置到创建虚拟环境、配置镜像源、接 PyCharm、安装 PyTorch 等一整套流程完整拆给大家。别担心全文都是可以直接照抄的实操记录不是那种云里雾里的官方文档。先说清楚 Anaconda 到底是什么。一句话解释Anaconda 是一个 Python 的发行版它把 Python 解释器、pip、conda 包管理器以及 numpy、pandas、matplotlib、scipy、jupyter 等 300 多个常用的科学计算库打包到了一起。什么意思呢就是你装一个 Anaconda等于把数据分析和机器学习最常用的底层环境一次性装好省得再去逐个 pip install 折腾依赖。这也是为什么几乎每一篇深度学习教程的开头都会写着“建议先装 Anaconda”——它不是唯一的 Python 环境管理工具但绝对是最省心的那一个。不管你用的是 Windows、macOS 还是 Linux你会发现 Anaconda 的核心逻辑是一样的下载安装包、配置环境变量、使用 conda 管理虚拟环境和依赖包。而大部分新手真正卡住的地方往往不是安装本身而是装完之后“不知道下一步干嘛”“为什么 conda 命令不能用”“为什么下载包慢到怀疑人生”。这篇文章就专门把这些坑填平让你一条命令一条命令地跟着操作全程不走弯路。1. 下载与安装选对版本从源头避开一半的坑1.1 官方网站与国内镜像站的选择Anaconda 的官方下载地址是 anaconda.com/download这个应该不用我多说。但我要先给你提个醒Anaconda 的安装包通常有 600MB 到 900MB如果你直接在官网下载国内网络环境下经常会遇到下载到一半失败、速度只有几 KB/s 的情况。这不是你的网络问题是服务器物理距离导致的解决方法也很简单——用国内镜像站下载。目前最常用的是清华大学的 TUNA 镜像站它的 Anaconda 归档地址是 mirrors.tuna.tsinghua.edu.cn/anaconda/archive。我实测过很多次镜像站的下载速度能跑到几 MB/s和官网下载完全是两个体验。不过在使用镜像的时候要注意一点进入归档页面后你可以看到历史上所有版本的安装包这时不要盲目选择最新版我更建议你选择 2024 年之后发布的版本因为旧版本自带的 Python 版本比较老安装 Python 3.8 或更早的版本在后续创建新环境时可能会遇到部分新版本库不支持的问题。这里有一个判断逻辑Anaconda 安装包的文件名里通常包含年份和月份信息比如 Anaconda3-2024.10-1-Windows-x86_64.exe什么意思呢Anaconda3 表示适用于 Python 3 的发行版2024.10 表示这个版本构建于 2024 年 10 月x86_64 是 64 位系统架构。没事别去下载 32 位版本现在主流的 Python 科学计算库早就已经放弃或者弱化对 32 位的支持了。1.2 Windows 安装全流程两个关键选项必须看明白Windows 下安装 Anaconda 基本就是“下一步、下一步”的过程多数人以为随便点两下就完事结果就是在这几句话里踩了坑。我建议你安装时重点关注下面两个选择项。第一个是安装路径。Anaconda 默认装在 C 盘用户目录下比如 C:\Users\你的用户名\anaconda3。我个人通常会把路径改成 D:\Anaconda 或者 E:\Software\Anaconda因为 Anaconda 基础上安装的虚拟环境和缓存的包会占用大量磁盘空间放在 C 盘很容易把系统盘塞满拖慢电脑整体速度。有一点切记安装路径不要包含中文和空格否则后续部分第三方库的编译或者环境变量配置会出现奇怪的报错。第二个是环境变量选项。安装过程中会看到两个复选框一个是“Add Anaconda3 to my PATH environment variable”另一个是“Register Anaconda3 as my default Python 3.10”。对新手来说你可能会担心“是不是勾选了 PATH 就会破坏系统原有的 Python”我可以给你一个比较稳妥的建议勾选第二项不勾选第一项。原因很简单Anaconda 自带的 conda 有它自己的一套初始化机制倘若你手动把它加到 PATH 里以后再安装系统级 Python 或者其他工具链时环境变量的优先级可能会让你摸不着头脑。不勾选 PATH 也没关系因为安装完成后我们会通过 Anaconda Prompt 或者 PowerShell 使用 conda这完全不依赖手动添加的 PATH。安装过程的最后安装器可能会询问你是否要安装 VS Code这个看个人需求我是直接跳过的毕竟完全可以用 PyCharm 或者直接以编辑器的方式使用 VS Code没必要在安装 Anaconda 时捆绑操作。1.3 macOS 与 Linux 的安装方式差异我平时在服务器上用得最多的是 Linux 版本在 Mac 笔记本上偶尔也会装一套 Anaconda。两者的安装方式比较接近都是通过命令行执行安装脚本但细节上的差异必须单独拎出来说。macOS 上安装时除了图形化的 pkg 安装包官方也提供了 .sh 脚本版本。用脚本版本时打开终端执行bash Anaconda3-2024.10-MacOSX-x86_64.sh即可。如果你的 Mac 是 Apple Silicon 芯片注意选择对应的 arm64 包不然虽然能通过 Rosetta 转换运行但性能上会有损失尤其在训练 PyTorch 模型时能明显感觉到差异。Linux 服务器上安装一般推荐把安装包下载到 /tmp 目录然后执行 bash 安装。命令形式是wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.10-1-Linux-x86_64.sh bash Anaconda3-2024.10-1-Linux-x86_64.sh注意Linux 下安装脚本会提示安装路径默认是 $HOME/anaconda3如果你是在多用户服务器上建议安装到 /opt/anaconda3 这类公共路径这样所有用户都能使用同一个基础环境。当然这需要你有 sudo 权限。安装过程中还会问你“Do you wish the installer to initialize Anaconda3 by running conda init?”这里建议选 yes选完之后会往你的 .bashrc 里写入初始化 conda 的配置后面就不用手动添加环境变量了。而且安装完成后务必执行source ~/.bashrc让配置立即生效。2. 核心配置环境变量、镜像源与 conda 基础命令2.1 环境变量到底要不要配怎么配关于环境变量网上众说纷纭我在这里给你一个非常清晰的结论Windows 下如果你用的是 Anaconda Prompt 或者已经通过 conda init 初始化过 PowerShell那就不需要手动配置环境变量如果你希望在任何终端里直接输入 conda、python 命令都能被系统识别那你就必须配置或者执行 conda init。Windows 下手动配置的步骤是右键“此电脑” - 属性 - 高级系统设置 - 环境变量然后在“系统变量”或“用户变量”中找到 Path点击编辑把 Anaconda 的三个目录加进去D:\Anaconda D:\Anaconda\Scripts D:\Anaconda\Library\bin这三个路径分别放的是 conda 主程序、conda 的辅助脚本以及一些依赖的动态链接库。只加第一个目录的话conda 命令可能会提示找不到但不是因为 conda 不存在而是因为它依赖的 DLL 不在搜索路径下。我想特别提醒你一个问题有些教程会建议在环境变量里把 Anaconda 放在系统自带 Python 的前面这样做确实可以让 anaconda 的 python 优先被调用但也很容易导致后面安装其他软件时出现版本错乱。我比较推荐的做法是系统里尽量只保留 Anaconda 这一套 Python开发项目都用虚拟环境隔离这样就不会有谁先谁后的烦恼。Linux 环境下配置环境变量的方式有点不一样。如果你安装时选择不运行 conda init可以手动编辑 ~/.bashrc 文件在末尾添加export PATH/opt/anaconda3/bin:$PATH然后执行source ~/.bashrc。但我还是推荐直接用 conda init因为 conda init 不仅添加了路径还会配置 shell 的初始化脚本方便每次打开终端自动激活 base 环境。有一点值得注意Linux 或者 macOS 下如果你之前用的 Python 是系统自带的/usr/bin/python3安装了 Anaconda 之后终端里输入python可能指向的是 Anaconda 环境如果你想临时用回系统 Python可以用/usr/bin/python3显式调用。这种“前缀覆盖”机制是 PATH 环境变量的基本逻辑理解了这一层你就不会再被各种版本问题绕晕了。2.2 配置清华镜像源把 conda 下载速度拉满装完了 Anaconda你大概率会先创建虚拟环境再安装一些包。但如果你直接用默认的官方软件源在国内网络环境下下载速度通常会让你怀疑人生。别问我是怎么知道的第一次我装一个才 200MB 的包愣是等了快半个小时。解决这个问题最简单的方法是把 conda 的下载源切换到清华镜像。命令如下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/cloud/conda-forge/ conda config --set show_channel_urls yes这里解释一下每条命令的意思前三条分别是把主软件源、免费软件源和 conda-forge 社区源加入到 conda 的 channel 列表中--add会把它添加到列表最前面让 conda 优先从这两个地址下载。最后一条命令是让 conda 在安装包时显示来自哪个 channel方便排查问题。除了 conda 本身pip 也要配置镜像源。你可以在用户目录下创建或修改pip.iniWindows或者pip.confLinux/macOS把内容写成[global] index-url https://pypi.tuna.tsinghua.edu.cn/simple trusted-host pypi.tuna.tsinghua.edu.cn不想创建文件的话也可以临时指定pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple。这个方法适合偶尔使用但天天用的话还是建议写到配置文件里一劳永逸。我在实际使用中发现清华镜像虽然快但偶尔也有缓存不同步的问题表现为某个包在官网已经更新了镜像源还没有。遇到这种情况可以临时用默认源安装一次conda install 包名 --channel defaults。这种方法作为备用方案比较实用。2.3 conda 基础命令虚拟环境管理是核心中的核心配置好源之后第一件事不是急着装包而是学会用 conda 管理虚拟环境。虚拟环境是什么用一个容易理解的说法虚拟环境就是给你每个项目单独开一间“房间”每个房间里装着这个项目需要的 Python 版本和依赖包互不干扰。这样做的好处是项目 A 可以用 numpy 1.24项目 B 可以用 numpy 1.21两者之间不会有任何冲突。创建虚拟环境的命令是conda create -n myenv python3.10这里的-n myenv表示环境名称是 myenvpython3.10表示在这个环境中使用 Python 3.10。如果你不指定 Python 版本conda 会默认使用当前 base 环境的 Python 版本。创建过程中 conda 会提示你确认安装输入 y 回车即可。激活环境用conda activate myenvWindows 下如果你用的是 CMD 或 PowerShell 且已经初始化过这个命令是可以直接用的。如果你发现提示conda activate不可用可能有两种原因一是没有运行过conda init二是当前终端没重新打开。Linux 或 macOS 下如果用的是老版本的 conda可能需要用source activate myenv但新版本已经统一为conda activate了。退出虚拟环境用conda deactivate删除虚拟环境用conda remove -n myenv --all这里注意--all参数表示把环境相关的所有文件都删干净不加的话只删除环境本身缓存的包还会留在硬盘里。平时养成好习惯删环境就带上--all避免磁盘空间被一堆没有用的数据包白白占掉。查看当前有哪些环境用conda env list这条命令非常常用它会列出所有已经创建的虚拟环境以及它们的路径当前激活的环境会带一个星号标记。查看某个环境中安装了哪些包conda list如果你当前处在 myenv 环境里这条命令会列出 myenv 下的所有包如果你在 base 环境列出的就是 base 下的包。再补充一个我后来才明白的小知识conda 创建的虚拟环境本质上就是在 Anaconda 安装目录下的 envs 文件夹里多了一个子目录。比如 Windows 下你可以在 D:\Anaconda\envs\myenv 里找到这个环境的所有文件。这个目录结构很有用因为你在 PyCharm 或 VS Code 里配置解释器时需要找到的就是这个路径下的 python.exe。3. 虚拟环境实战配置 PyTorch 与 PyCharm 集成3.1 用 PyTorch 作为例子带你走一遍完整流程虚拟环境管理的用途在安装深度学习框架时体现得最为明显。我拿 PyTorch 来举例因为这是目前做深度学习、生成式模型、自然语言处理时使用率最高的框架之一。假设我们要创建一个专门用来跑 PyTorch 项目的环境名字就叫 torch_envPython 版本选择 3.10。为什么推荐 3.10因为 PyTorch、TensorFlow 这类大型框架在适配性上对 Python 3.9-3.11 的支持最稳定3.12 以上虽然也能用但偶尔会遇到某些扩展库没有及时发布兼容版本的情况。如果你不确定选哪个版本选 3.10 或 3.11 一般是比较安全的。先创建环境conda create -n torch_env python3.10然后激活环境conda activate torch_env接下来最关键的一步安装 PyTorch。你需要先确认电脑有没有 NVIDIA 独立显卡。在 Windows 下打开任务管理器点击“性能”标签页左侧最下面如果能看到“GPU”再进一步看 GPU 名称里面有没有 NVIDIA 或 GeForce RTX 字样。如果有说明你可以安装 GPU 版本用显卡加速计算如果没有只能安装 CPU 版本。确定显卡信息后去 PyTorch 官网pytorch.org找到安装命令生成器选择你的操作系统、包管理工具这里选 Conda 或 Pip、CUDA 版本。比如如果你的是 CUDA 11.8官网通常会给你类似这条命令conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidia如果是 CPU 版本conda install pytorch torchvision torchaudio cpuonly -c pytorch这里我给一个非常实用的经验如果在 PyTorch 官网生成的是 pip 安装命令比如pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118那你就先激活 torch_env 环境然后直接用这条 pip 命令安装效果是一样的。很多时候 conda 默认的源里 pytorch 相关包更新不及时用 pip 反而更快、更省心。不过要注意不管用 conda 还是 pip安装前都要确保当前终端已经激活了目标环境。我在实际中见过不少读者把包装到了 base 环境然后跑到虚拟环境里执行 import torch 就报 ModuleNotFoundError原因就是这个。安装完成后验证是否成功。在激活 torch_env 的终端里输入python进入 Python 交互式环境后import torch print(torch.__version__) print(torch.cuda.is_available())第一行输出是 PyTorch 版本号第二行如果是 True说明 GPU 版本已经正确识别到了 CUDA如果是 False说明你安装的是 CPU 版本或者驱动没有正确识别。我在测试时遇到过一个典型问题打印版本号正常但torch.cuda.is_available()返回 False。排查了几次发现不是 PyTorch 的问题而是显卡驱动版本太老GPU 的算力没被 CUDA 识别到。解决办法是更新 NVIDIA 驱动到最新版本。这里也顺带说一句不要执着于安装最高版本的 CUDA——现在 PyTorch 的这些版本中11.8 和 12.1 用的最多你驱动支持哪个就看哪个装不上就降低一档。3.2 PyCharm 配置 Anaconda 环境三处关键设置做完命令行下的配置许多人会转战到 IDE 写代码。PyCharm 是当前 Python 开发使用率最高的 IDE下面讲一下怎么把 PyCharm 和 Anaconda 虚拟环境接起来。打开 PyCharm新建项目时在“New Project”窗口里注意右侧的“Interpreter”设置。默认情况下PyCharm 会让你新建一个虚拟环境Virtualenv但我们现在要用的是 Anaconda 的 conda 环境所以选择“Previously configured interpreter”或“Existing”——不同版本的 PyCharm 措辞略有不同但核心思路一致不要新建选已有的解释器。接着点击解释器旁边的“Add Interpreter”按钮选择“Conda Environment”然后在窗口中选择“Use existing environment”下拉菜单里会列出你在 Anaconda 里创建的所有 conda 环境比如 base 和 torch_env。选中 torch_envPyCharm 会自动定位到 D:\Anaconda\envs\torch_env\python.exe 这个解释器文件。如果你遇到下拉菜单里没有目标环境的情况可以直接点击右侧的文件夹图标手动定位到 Anaconda 安装目录下的 envs 文件夹展开后选择目标环境文件夹里的 python.exe 文件。注意 Windows 下文件名是 python.exeLinux 和 macOS 下是 python 或 python3但 PyCharm 一般都能自动识别。需要注意的是PyCharm 里的项目和 conda 环境是两个独立的维度项目决定代码放哪环境决定用哪个解释器。所以你可以一个项目对应一个 conda 环境也可以多个项目共用同一个环境。但从环境管理的整洁性出发我建议一个项目一个环境或者至少相关项目共用同一个环境。这和我们前面说的“项目隔离”逻辑是同一个思路。配置完成后在 PyCharm 的终端Terminal 窗口里直接输入conda env list如果能够正常显示说明终端也继承了 PyCharm 的环境变量设置这时候你可以在终端里继续使用 conda 命令不需要额外打开 Anaconda Prompt。这个细节很多人忽略实用性很高。运行一下代码测试import sys print(sys.executable)如果输出的路径是 D:\Anaconda\envs\torch_env\python.exe说明 PyCharm 已经正确指向了虚拟环境。这时候你再import torch只要虚拟环境里装好了就不会再报错了。这个“先看解释器路径再怀疑包缺失”的排查思路能帮你快速定位 80% 的模块导入问题。3.3 Jupyter Notebook 与 Jupyter Lab把 conda 环境注册进内核Anaconda 自带 Jupyter Notebook 和 Jupyter Lab。但这里也有一个新手很爱踩坑的地方在 base 环境打开 Jupyter里面的 Python 是 base 环境的在 torch_env 环境打开 Jupyter里面的 Python 才是 torch_env 环境的。如果你希望打开 Jupyter 时能在内核列表里自由选择不同的 conda 环境那还需要额外做一步配置。先在目标环境里安装 ipykernelconda install ipykernel然后把当前环境注册成 Jupyter 的内核python -m ipykernel install --user --name torch_env --display-name Python (torch_env)这里的--name是内核名称--display-name是你在 Jupyter 界面上看到的显示名称可以随意起一个容易辨认的名字。注册完成后打开 Jupyter Lab点击右上角的“选择内核”下拉菜单就能看到你注册的那个环境。我自己的习惯是Jupyter Lab 用来做数据分析和探索性实验PyCharm 用来写正式的模块化代码。两者共用同一个 conda 环境代码和数据之间无缝切换体验很好。这里再补充一点有些版本的 Jupyter 在启动时会提示“Loading Applications”然后长时间卡住大概率是 Jupyter 在尝试加载一些扩展插件或者网络请求了一阵子。解决办法可以是先运行jupyter lab --no-browser把浏览器自动打开关掉再手动访问终端给出的 localhost 地址。如果问题依旧尝试清空 Jupyter 的配置缓存具体可以通过jupyter --paths查看配置目录位置把该目录下的 runtime 文件夹内容清理掉再重启 Jupyter。4. 常见问题与排查技巧实录装完之后的那些坑4.1 常见报错速查表与解决思路我把这些年遇到的高频问题整理成了一张速查表方便你直接对照处理。问题现象可能原因快速解决办法conda 命令无法识别环境变量未配置或未运行 conda initWindows 下将 Anaconda 目录加入 PATHLinux 下执行 conda initconda 创建环境时长时间卡在 Solving environmentconda 依赖解析过慢切换为 conda-forge 源或使用 mamba或换用 pip 安装pip 安装包后 import 报 ModuleNotFoundError装错了环境或者当前终端没激活目标环境确认conda activate已执行用python -m pip install代替pip install安装 PyTorch 后 torch.cuda.is_available() 为 False驱动版本过旧或安装的是 CPU 版本更新 NVIDIA 驱动重新按 CUDA 版本安装 GPU 版Anaconda 提示 “There is an instance of anaconda already running”后台有 Anaconda 进程未退出打开任务管理器结束所有 python.exe、anaconda 相关进程后重试import numpy 报 DLL load failed缺少 VC 运行库安装 Microsoft Visual C Redistributableconda install 很慢没有配置国内源按 2.2 节配置清华源或使用中科大源卸载后系统 Python 命令被指向 AnacondaPATH 环境变量还有残留编辑环境变量删除 Anaconda 相关路径Linux 下检查 .bashrc虚拟环境 prompt 显示警告 (WARNING)conda 版本较老或环境冲突执行 conda update conda 更新版本创建环境时出现 “Could not find a version that satisfies the requirement”当前 channel 里没有该版本添加 conda-forge 源或指定 PyPI 安装这张表里我想重点讲一下第一项和第八项因为这两个问题几乎每个新手都会遇到。conda 命令无法识别本质上是系统找不到 conda 所在路径下的可执行文件。Windows 下如果你环境变量里的路径写错了比如写成 D:\Anaconde 而不是 D:\Anaconda那当然不行。Linux 下如果你用了export PATH/anaconda3/bin:$PATH但实际安装路径是$HOME/anaconda3也会出问题。所以遇到这类问题先冷静核对路径拼写再确认是否执行了 source 或重启了终端。卸载 Anaconda 之后你可能会发现系统里原本的 Python 仍然打不开或者打开后还是 Anaconda 的 Python。这是因为卸载工具只删除了 Anaconda 本体文件却没有自动清理 PATH 环境变量。Windows 下你需要手动打开环境变量编辑器把 Anaconda 相关的几行删除。Linux 下需要编辑 ~/.bashrc删除 conda init 添加的那几行配置。4.2 Anaconda 加载缓慢与卡顿的处理“Anaconda loading applications”应该是出现频率最高的卡顿提示之一。很多用户在启动 Anaconda Navigator 时看到这个界面一直转圈不知道是死机了还是正常启动中。Windows 下 Anaconda Navigator 首次启动确实会比较慢因为它要扫描你的环境状态、检查更新、加载插件。但如果每次都卡很久那就要排查问题了。第一个排查项是网络请求。Navigator 启动时会尝试连接 Anaconda 官方服务器检查更新如果网络不佳这个请求会一直等待直到超时。最简单的办法是在 Navigator 的“File - Settings”里关闭自动更新检查。第二个排查项是旧锁文件。Anaconda 目录里有一个.conda_lock文件或者pkgs/cache下的缓存文件很容易损坏删除这些文件可以解决不少卡顿问题。如果你不是特别依赖 Navigator 的图形界面我其实建议直接用命令行完成所有环境管理操作。Navigator 对新手友好但对老手来说反而是一种束缚——环境管理、包安装、内核注册这些操作一行命令就可以完成没必要每次打开一个笨重的图形界面。另外提一个常见的现象conda 执行conda update conda之后终端提示版本更新了但打开 Navigator 发现版本没变化。这通常说明 Navigator 和 conda 是两个独立的包更新 conda 不会自动更新 Navigator。需要单独执行conda update anaconda-navigator才能让图形界面的版本也同步。4.3 排查逻辑遇到 ImportError 时不要急着去搜索最后分享一个排查问题的思路这也是我踩了很多次坑之后总结出来的经验Python 报模块导入错误时第一件事不是去网上搜“import xxx error”而是先确认当前解释器是谁。拿最典型的报错来举例ModuleNotFoundError: No module named numpy很多人第一反应是pip install numpy然后发现还是报错于是又开始搜各种偏方。但如果你先运行下面的命令import sys print(sys.executable)输出结果显示D:\Anaconda\envs\myenv\python.exe说明你当前用的是 myenv 虚拟环境那么你应该conda activate myenv后在这个环境里安装 numpy而不是在 base 环境或者系统全局环境里安装。如果输出显示的是系统自带的/usr/bin/python3说明终端没有激活任何 conda 环境那么你就应该在 base 环境下安装或者先激活目标环境。这个“先看解释器路径再安装依赖”的思路能解决一大半模块导入问题。conda 和 pip 安装包的位置决定了它只能被对应环境下的 Python 导入。如果把环境比作一个房间每个房间里都有一份独立的 Python 和独立的包列表你在房间 A 里安装的包房间 B 里是看不到的。还有一个类似的高频问题就是安装时用了 pip但 conda 也会强制检查 pip 安装的包两者之间偶尔会出现包的元数据不一致。这种情况通常不影响正常使用但如果某个包在 conda list 里看不到却在 pip list 里能看到说明这个包是用 pip 安装到当前环境的conda 默认不追踪这些数据不需要恐慌。5. 环境维护与卸载良好的习惯比一次装好更重要5.1 日常维护定期清理缓存与备份环境列表Anaconda 用久了以后你会注意到 C 盘的空间一点点被吞掉。这是因为 conda 在每次安装包时都会把下载的 .conda 和 .tar.bz2 文件缓存到 pkgs 目录里而且创建虚拟环境时如果多个环境用了同一个版本的 Python这些公共文件会被硬链接过去本身不会增加太多空间但如果环境之间 Python 版本各不相同缓存占用的空间就会成倍增加。清理缓存我可以推荐两个命令。第一个是:conda clean --all这个命令会把未使用的安装包缓存、索引缓存、日志文件等全部清理掉清理之前建议先看一下它会输出哪些文件如果确认没问题再输入 y 确认。第二个是手动删除不再使用的环境conda env remove -n old_env这个命令我在前面提到过这里再强调一次删除环境前最好先确认这个环境里没有你需要的数据。环境的删除是不可逆的如果忍痛删错了只能重新创建再逐个安装依赖包既浪费时间又影响心情。备份环境列表也是一个好习惯。比如你费了几天功夫把 torch_env 环境的依赖调到了一切可用的状态那么可以把这个环境的包列表导出到一个文件里将来换电脑或重建环境时直接用这个文件恢复conda env export environment.yml恢复的时候执行conda env create -f environment.yml这个做法的妙处在于yml 文件会记录所有通过 conda 和 pip 安装的包的具体版本号以及 channel 来源。虽然导出的文件可能包含一些绝对路径导致在别人的电脑上无法完全还原但它至少能保证环境和原来的包版本是对齐的。5.2 彻底卸载 AnacondaWindows 和 Linux 的各种差异如果你决定不用 Anaconda 了要卸载那我把两种系统的差异都讲一下。Windows 下卸载方式有两种一种是通过“控制面板 - 程序和功能”找到 Anaconda3 条目右键卸载另一种是使用 Anaconda 安装目录下的 Uninstall-Anaconda3.exe 卸载程序。无论哪种方式卸载完成后你都要手动检查一下环境变量把 Anaconda 相关的三条路径从 Path 里移除。这一点非常关键原因前面已经解释过不删干净的话以后你在终端里输入 python 可能仍然会提示找不到或者指向一个不存在的 Anaconda 目录。Linux/macOS 下卸载更简单因为 Anaconda 安装时不会像 Windows 那样注册到系统管理列表你只需要删除整个安装目录即可。通常执行rm -rf ~/anaconda3然后编辑 ~/.bashrc把 conda init 添加的那些代码段删掉。这些代码段通常是一个# conda initialize 开头、# conda initialize 结尾的块删除后保存再执行source ~/.bashrc即可。还有一点想提醒的是如果你在卸载 Anaconda 之前在虚拟环境里留下了大量基于 conda 安装的库文件这些文件占用的磁盘空间不会自动释放你需要确认自己不使用它们后再删除对应目录。卸载之前如果你还计划继续用 Python建议先把自己写在各个环境里的脚本和数据备份出来避免被误删。5.3 Anaconda 之外什么时候可以用 miniconda 或 mamba 替代最后聊一个深入的问题Anaconda 不一定适合所有人。如果你需要的只是 conda 这个包管理器并不需要 Anaconda 预装的那 300 多个科学计算库那 Miniconda 才是更轻量、更适合你的选择。Miniconda 是 Anaconda 的轻量版本只包含 conda、Python、pip 和少量依赖库安装包体积只有 80MB 左右。它创建的虚拟环境机制、conda 命令和 Anaconda 完全一致只是你自己需要手动安装项目需要的包。对使用 Docker 镜像、CI/CD 流水线或服务器部署的场景来说Miniconda 会更合适因为镜像体积更小环境搭建的逻辑也更清晰。如果你受够了 conda 的依赖解析速度还可以试试 mamba。mamba 是一个用 C 重写的 conda 依赖解析器最大的特点就是快。安装命令是conda install mamba -c conda-forge安装之后把原来的 conda create 换成 mamba create把 conda install 换成 mamba install其余用法几乎一致。我实测过在同一个环境下conda 要花 3 分钟解析依赖包mamba 只要 30 秒左右就能完成。如果你经常需要安装大型框架比如 PyTorch 全家桶、R 语言支持包等mamba 一定会是你用一次就回不去的工具。6. 最后的实操建议我的 Anaconda 使用心得说了这么多我最后分享一些个人使用 Anaconda 的日常习惯希望能给你一些参考。在创建环境这件事上我会为每一个比较大的项目单独建一个环境环境命名规范是“项目名_用途”比如 llm_finetune、数据分析_temp、爬虫专用 等。这样的好处是过几个月回来看环境列表一眼就能看出每个环境是干嘛用的不会出现一堆 envs 全是 pytorch、tf1、tf2 这种名字最后连自己都分不清的情况。在安装包这件事上我通常会优先使用 conda 安装编译好的二进制包特别是涉及 GIS、科学计算这些依赖较多、编译麻烦的库。因为 conda 在处理 C/C 依赖方面比 pip 可靠得多它不会像 pip 那样只关心 Python 层的依赖而是连底层的动态链接库一起管理。但如果某个库在 conda 源里没有或者版本太旧我才会用 pip 从 PyPI 安装。在虚拟环境数量控制上我也要提醒一句不要建太多环境。环境多了之后光是维护一份固定的 package 集合就会消耗不少时间和磁盘空间。我的建议是一个项目一个环境是最好的粒度如果你几个项目都用同一套依赖就合并成一个环境。如果环境越来越多定期用 conda env export 导出备份然后删掉不用的环境保持环境的整洁。Anaconda 的安装和配置说难也不难说简单也藏着不少细节。很多人花了大半天时间装好环境最后却被一个环境变量、一条镜像源配置卡住。但我希望这篇教程能帮你把这些细节一次讲透从下载到安装从环境变量到镜像源从虚拟环境到 IDE 集成从 lint 报错到环境清理你都能静下心按部就班地操作。装一次环境、建一个虚拟环境、跑通一个深度学习项目整个链条顺下来你对 Python 工程化的理解就会上一个台阶。
返回列表