Skip to content

第一章:Python多环境 ​

Anaconda 安装与使用:从“能装上”到“会管理” ​

刚开始学习 Python 时,很多人以为最难的是语法。真正做过几个项目后才发现,另一个问题同样让人头疼:

  • 项目 A 需要 Python 3.9,项目 B 却需要 Python 3.11;
  • 项目 A 依赖旧版 TensorFlow,项目 B 需要新版 PyTorch;
  • 昨天还能运行的代码,今天安装一个库后突然报错;
  • 把代码发给别人,对方却因为“环境不一样”无法运行。

这些问题的根源通常不是代码,而是 Python 环境混乱。

Anaconda 的价值,就是帮助我们把 Python、第三方库和不同项目的依赖管理清楚。本文将从零开始介绍 Anaconda 的安装与使用,并进一步讲明白虚拟环境、Conda 和 uv 之间的关系。

一、Anaconda 到底是什么? ​

可以把 Python 项目想象成做饭:

  • Python 是厨房里的基本炊具;
  • NumPy、Pandas 等第三方库 是各种食材和调料;
  • 虚拟环境 是相互独立的厨房;
  • Conda 是负责准备和切换厨房的管家;
  • uv 是负责快速采购和整理食材的管家;
  • Anaconda 则是一套已经配好炊具、管家和常用食材的“整体厨房”。

因此,Anaconda 不只是 Python 安装包,而是一个面向数据科学、机器学习和科学计算的 Python 发行版。它通常包含 Python、Conda、常用科学计算库以及相关工具。

1. Anaconda、Conda、Python 和 uv 的区别 ​

名称它是什么主要负责什么
Python编程语言及解释器执行 Python 代码
Anaconda一套 Python 发行版提供 Python、Conda 和常用工具
Conda环境管理工具创建、激活、切换和删除环境
uv快速的 Python 包管理工具解析、安装和管理 Python 第三方库

Conda 和 uv 都具备安装软件包的能力,但本文只使用它们各自最擅长的一部分:Conda 负责环境和 Python 版本,uv 负责项目中的全部第三方库。 除了通过 Conda 安装 uv 工具本身,项目依赖不再使用 conda install 安装。

2. Anaconda 和 Miniconda 怎么选? ​

  • Anaconda:预装内容较多,安装后比较方便,适合初学者和希望开箱即用的人。
  • Miniconda:只包含 Python、Conda 等基础组件,体积更小,软件按需安装,适合喜欢精简环境的人。

两者的核心工具都是 Conda,所以本文中的大部分 Conda 命令对两者都适用。

二、为什么一定要使用虚拟环境? ​

假设所有项目都共用同一个 Python 环境:

text
项目 A:需要 package 1.0
项目 B:需要 package 2.0

同一个环境中通常无法同时保留同一个包的两个版本。给项目 B 升级后,项目 A 就可能无法运行。

虚拟环境的解决思路很直接:一个项目使用一个独立环境。

text
Anaconda
├── base 环境
├── project-a 环境:Python 3.9 + package 1.0
└── project-b 环境:Python 3.11 + package 2.0

这些环境各有自己的 Python 和第三方库。切换环境,就像从一间厨房走进另一间厨房,不会把不同项目的“食材”混在一起。

最重要的使用原则:不要所有项目都直接装在 base 环境中,尽量做到一个项目一个环境。

三、安装前的准备 ​

安装前建议做好以下准备:

  1. 预留数 GB 的可用磁盘空间,后续创建环境和安装深度学习框架还会占用更多空间。
  2. 从 Anaconda 官方下载页面 下载安装包,尽量不要使用来源不明的镜像或修改版。
  3. 选择与操作系统和 CPU 架构匹配的安装包。
  4. 已经安装过 Python 通常也不必急着卸载。安装后通过命令确认当前使用的是哪个 Python 即可。
  5. 为减少部分旧工具的兼容问题,安装路径和用户名最好使用简单的英文字符。

不同版本的安装界面可能略有差异,但核心选项基本一致。

四、在 Windows 上安装 Anaconda ​

1. 运行安装程序 ​

下载 64 位 Windows 安装包后,双击运行。一般可以选择 Just Me,即只为当前用户安装,通常不需要管理员权限。

在选择安装位置时,可以使用默认路径。如果磁盘空间不足,也可以换成其他简单、易于识别的路径,例如:

text
D:\Anaconda3

不要把安装目录误认为项目目录。Anaconda 的安装位置和你的代码存放位置是两回事。

2. 理解高级安装选项 ​

安装过程中可能看到以下选项:

  • Add Anaconda to my PATH environment variable:一般不建议勾选。直接修改系统 PATH 可能与其他 Python 或开发工具发生冲突。需要使用 Conda 时,可以打开开始菜单中的 Anaconda Prompt。
  • Register Anaconda as my default Python:用于将 Anaconda 注册为系统默认 Python。没有其他 Python 管理需求时可以保留;如果电脑上有多个 Python 工具链,应根据自己的开发方式选择。

如果安装后不知道应该打开哪个终端,优先使用开始菜单里的 Anaconda Prompt,不要一开始就手动修改一堆系统环境变量。

3. 验证安装 ​

打开 Anaconda Prompt,依次执行:

powershell
conda --version
python --version
where python

如果前两条命令能显示版本号,说明 Conda 和 Python 已经可以运行。where python 会列出当前能够找到的 Python 路径,可用来判断是否出现了多个 Python 相互干扰的情况。

五、在 macOS 或 Linux 上安装 Anaconda ​

1. macOS ​

macOS 用户可以先确认芯片类型:

  • Apple M 系列芯片:选择 Apple Silicon 对应版本;
  • Intel 芯片:选择 Intel 对应版本。

如果使用图形安装包,按提示完成安装即可。安装结束后,关闭并重新打开终端,再执行:

bash
conda --version
python --version
which python

如果使用命令行安装包,可在终端中运行类似下面的命令,具体文件名以实际下载内容为准:

bash
bash ~/Downloads/Anaconda3-最新版本号-MacOSX-arm64.sh

安装程序会依次询问许可协议、安装位置以及是否初始化 Conda。同意初始化后,Conda 会修改 shell 的启动配置,让新终端能够识别相关命令。

2. Linux ​

进入安装包所在目录,运行下载的 .sh 文件,例如:

bash
bash Anaconda3-最新版本号-Linux-x86_64.sh

阅读许可协议并确认安装路径。安装结束时,通常建议允许安装程序执行 Conda 初始化。完成后重新打开终端,或者让当前 shell 重新加载配置:

bash
source ~/.bashrc

使用 zsh 时,对应配置文件通常是 ~/.zshrc。最后使用 conda --version 验证安装。

六、第一次创建自己的环境 ​

安装完成后,Conda 通常会有一个名为 base 的默认环境。可以把 base 看作管理入口,不建议把所有项目依赖都塞进去。

下面创建一个名为 ai-demo 的环境,并指定 Python 3.11:

bash
conda create -n ai-demo python=3.11 -y

这条命令包含四个关键信息:

  • create:创建环境;
  • -n ai-demo:环境名称为 ai-demo;
  • python=3.11:在该环境中安装指定版本的 Python;
  • -y:确认安装计划后自动继续,省略交互确认。

创建完成后,激活环境:

bash
conda activate ai-demo

激活成功后,终端提示符前通常会出现:

text
(ai-demo)

这表示后续执行的 python、uv 等命令,应优先使用 ai-demo 环境中的程序。可以再检查一下:

bash
python --version

Windows 使用:

powershell
where python

macOS 或 Linux 使用:

bash
which python

工作完成后,可以退出当前环境:

bash
conda deactivate

注意:关闭终端不会删除环境。 下次重新打开终端后,再次执行 conda activate ai-demo 即可继续使用。

七、使用 uv 安装和管理第三方库 ​

在本文的工作流中,Conda 只负责创建、激活、切换和删除环境,项目的第三方库全部交给 uv 管理。 除了安装 uv 工具本身,不再使用 conda install 安装项目依赖。

1. 在 Conda 环境中安装 uv ​

uv 是一款用 Rust 编写的 Python 包管理工具,特点是依赖解析和安装速度快。先激活目标环境,再从 conda-forge 安装 uv:

bash
conda activate ai-demo
conda install -c conda-forge uv -y
uv --version

能够显示版本号,说明 uv 安装成功。这种安装方式会把 uv 放在 ai-demo 环境中,因此使用前要确保该环境已经激活。

2. 使用 uv 安装第三方库 ​

保持 Conda 环境处于激活状态,然后执行:

bash
uv pip install requests

也可以一次安装多个库:

bash
uv pip install numpy pandas matplotlib

安装指定版本:

bash
uv pip install "包名==版本号"

这里的 uv pip 是 uv 提供的包管理命令,下载、依赖解析和安装都由 uv 完成。激活 Conda 环境后,uv 会根据 CONDA_PREFIX 环境变量识别当前环境,所以每次安装前都要先激活目标环境,避免把库装到其他位置。

如果项目已经提供了 requirements.txt,可以批量安装其中记录的依赖:

bash
uv pip install -r requirements.txt

3. 查看、升级和卸载软件包 ​

查看当前环境中的软件包:

bash
uv pip list

查看某个软件包的详细信息:

bash
uv pip show requests

升级某个软件包:

bash
uv pip install --upgrade requests

卸载某个软件包:

bash
uv pip uninstall requests

升级和卸载都可能影响依赖这个库的其他程序,操作后应重新运行项目测试。如果安装后程序仍然提示找不到包,优先检查:安装包时激活的 Conda 环境,是否就是运行程序时使用的环境。

八、用 Anaconda 运行 JupyterLab ​

JupyterLab 适合交互式编程、数据分析和记录实验过程。建议把它安装到实际使用的项目环境中:

bash
conda activate ai-demo
uv pip install jupyterlab
jupyter lab

正常情况下,浏览器会自动打开 JupyterLab 页面。终端会显示本地访问地址,一般是 localhost 或 127.0.0.1 地址。

这里的 localhost 指的是 当前这台电脑,不是互联网上的公开网站。启动服务后不要直接关闭运行它的终端;需要停止服务时,可在终端中按 Ctrl+C。

如果打开 Notebook 后发现找不到当前环境中的库,通常是 Notebook 使用了其他环境的 Python。可以安装并注册当前环境的内核:

bash
conda activate ai-demo
uv pip install ipykernel
python -m ipykernel install --user --name ai-demo --display-name "Python (ai-demo)"

重新打开 JupyterLab 后,选择 Python (ai-demo) 内核即可。

九、保存并复现项目依赖 ​

环境配好后,不要只靠记忆记录安装步骤。由于第三方库统一由 uv 管理,项目依赖也应使用 uv 能够读取的 requirements.txt 保存,而不是依赖 Conda 的环境导出记录。

1. 查看并记录依赖 ​

查看当前环境的软件包及其版本:

bash
uv pip list

以 包名==版本号 的形式查看精确版本:

bash
uv pip freeze

在项目根目录创建 requirements.txt,记录项目需要的主要依赖,例如:

text
numpy
pandas
matplotlib
requests

如果需要精确复现当前环境,可以参照 uv pip freeze 的输出,在 requirements.txt 中记录具体版本。这个文件应与项目代码一起保存。

2. 根据依赖文件恢复项目 ​

在一台新电脑上,可以先用 Conda 创建并激活环境,再安装 uv,最后由 uv 恢复全部第三方库:

bash
conda create -n ai-demo python=3.11 -y
conda activate ai-demo
conda install -c conda-forge uv -y
uv pip install -r requirements.txt

如果 Conda 环境已经存在,只需激活环境并执行最后的 uv 安装命令。这样分工很清晰:Conda 恢复 Python 环境,uv 恢复项目依赖。

十、删除不需要的环境 ​

虚拟环境会占用磁盘空间。确认某个环境不再需要后,可以先退出该环境,再将其删除:

bash
conda deactivate
conda remove -n ai-demo --all

删除环境只会删除该环境中的 Python 和软件包,不会自动删除你的项目代码。但为了保险起见,执行前仍应确认环境名称,尤其不要误删仍在使用的环境。

十一、常见问题与排查思路 ​

1. 提示“conda 不是内部或外部命令”或“conda: command not found” ​

说明当前终端没有找到 Conda。

  • Windows:先改用 Anaconda Prompt;
  • macOS 或 Linux:关闭并重新打开终端;
  • 检查安装时是否完成了 Conda 初始化;
  • 不建议一遇到问题就随意向 PATH 添加多个 Python 路径。

2. conda activate 无法正常使用 ​

可能是当前 shell 尚未初始化。可以执行:

bash
conda init

然后彻底关闭并重新打开终端。Windows PowerShell 也可以明确执行:

powershell
conda init powershell

初始化完成后,同样要重开终端。

3. 安装了库,代码却提示 ModuleNotFoundError ​

最常见的不是安装失败,而是“装在一个环境,运行在另一个环境”。

依次检查:

bash
conda env list
python --version
uv pip show 包名

Windows 再执行 where python,macOS 或 Linux 再执行 which python,确认安装和运行使用的是同一套 Python。

4. 使用 uv 安装软件包时提示依赖冲突 ​

可以尝试:

  • 阅读报错信息,找出分别是哪两个依赖提出了冲突的版本要求;
  • 检查软件包是否支持当前的 Python 版本;
  • 减少不必要的版本限制,不要同时指定互相冲突的版本;
  • 为新项目创建独立环境,而不是强行修改已有项目的环境。

不要轻易使用“强制忽略依赖”之类的参数,那通常只是把问题留到运行阶段。

5. 网络下载失败 ​

先检查网络、代理和软件源配置,再重试或更换可信镜像。不要为了省事关闭 SSL 安全校验,也不要复制一长串自己并不理解的网络配置。

十二、推荐的使用习惯 ​

  1. 一个项目一个环境,不要所有项目共用 base。
  2. base 环境保持精简,主要把它当作 Conda 的管理入口。
  3. 创建环境时明确 Python 版本,减少不同机器上的不确定性。
  4. 先激活环境,再安装包、运行代码和启动编辑器。
  5. 第三方库统一使用 uv 管理,不要再混用 Conda 安装项目依赖。
  6. 把 requirements.txt 和项目代码一起保存,方便以后复现。
  7. 更新依赖前先备份 requirements.txt,不要无目的地频繁升级全部软件包。
  8. 遇到报错先确认当前环境和 Python 路径,很多“玄学问题”其实都是环境错位。

十三、常用命令速查表 ​

目的命令
查看 Conda 版本conda --version
查看所有环境conda env list
创建环境conda create -n 环境名 python=3.11 -y
激活环境conda activate 环境名
退出环境conda deactivate
安装 uvconda install -c conda-forge uv -y
使用 uv 安装库uv pip install 包名
使用 uv 查看库uv pip list
查看库的详细信息uv pip show 包名
使用 uv 升级库uv pip install --upgrade 包名
使用 uv 卸载库uv pip uninstall 包名
查看精确依赖版本uv pip freeze
批量安装依赖uv pip install -r requirements.txt
删除整个环境conda remove -n 环境名 --all

结语 ​

学习 Anaconda,重点不是背下所有命令,而是建立一个清晰的概念:代码运行在哪个环境中,这个环境里有哪些 Python 和第三方库。

掌握 Conda 的 create、activate、deactivate,以及 uv 的 install、list、uninstall 等核心操作后,你就已经能够完成大多数日常环境和依赖管理工作。以后无论学习数据分析、人工智能,还是部署自己的 Python 项目,“Conda 管环境、uv 管依赖,一个项目一个环境”都会是一个简单却非常可靠的习惯。