☰
Anaconda安装配置完全指南:虚拟环境、镜像源与PyTorch实战
2026/9/30 5:15:29 网站建设 项目流程

如果你是一个刚入门 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.ini(Windows)或者pip.conf(Linux/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 python=3.10

这里的-n myenv表示环境名称是 myenv,python=3.10表示在这个环境中使用 Python 3.10。如果你不指定 Python 版本,conda 会默认使用当前 base 环境的 Python 版本。创建过程中 conda 会提示你确认安装,输入 y 回车即可。

激活环境用:

conda activate myenv

Windows 下如果你用的是 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_env,Python 版本选择 3.10。为什么推荐 3.10?因为 PyTorch、TensorFlow 这类大型框架,在适配性上对 Python 3.9-3.11 的支持最稳定,3.12 以上虽然也能用,但偶尔会遇到某些扩展库没有及时发布兼容版本的情况。如果你不确定选哪个版本,选 3.10 或 3.11 一般是比较安全的。

先创建环境:

conda create -n torch_env python=3.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-cuda=11.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_env,PyCharm 会自动定位到 D:\Anaconda\envs\torch_env\python.exe 这个解释器文件。

如果你遇到下拉菜单里没有目标环境的情况,可以直接点击右侧的文件夹图标,手动定位到 Anaconda 安装目录下的 envs 文件夹,展开后选择目标环境文件夹里的 python.exe 文件。注意 Windows 下文件名是 python.exe,Linux 和 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 环境,那还需要额外做一步配置。

先在目标环境里安装 ipykernel:

conda 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 目录加入 PATH;Linux 下执行 conda init
conda 创建环境时长时间卡在 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++ Redistributable
conda 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 彻底卸载 Anaconda:Windows 和 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 工程化的理解就会上一个台阶。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询