Conda 基础使用指南:Anaconda安装与环境管理
同学们好!在使用 Python 进行开发时,你是否曾被各种库的版本依赖问题搞得焦头烂额?这个项目需要 Python 3.7 和旧版 TensorFlow,那个项目却需要 Python 3.9 和最新版 PyTorch?不同项目的环境可能产生冲突,引发未知问题。手动管理这些依赖简直是一场噩梦。
别担心,今天我们就来认识一个强大的工具——Conda。Conda 是一个开源的包管理和环境管理系统,它能帮助你轻松创建、保存、加载和切换不同的“环境”,让每个项目都拥有自己独立的依赖集合,彻底告别“依赖地狱”!
本文将带你走过 Conda 在 macOS 上的基础使用流程,重点介绍通过下载 Anaconda 安装包的方式进行安装,并涵盖理解和管理 base
环境、创建和使用虚拟环境,以及一些实用小技巧。
第一步:在 macOS 上下载并安装 Anaconda
Anaconda 是一个包含了 Conda、Python 以及众多常用科学计算和数据分析库的发行版。对于初学者或需要大量预装库的用户来说,安装完整的 Anaconda 是一个方便的选择。
下载安装包: 访问 Anaconda 官方下载成功页面:https://www.anaconda.com/download/success。在这个页面,你可以找到适用于 macOS 的图形界面安装程序(
.pkg
文件)。选择适合你 macOS 版本的安装包进行下载。
036081ebc3240b0d6010f5cd3ab3b746_720运行安装程序: 找到下载好的
.pkg
文件,双击运行它。这将启动 Anaconda 的图形界面安装向导。一步一步即可完成安装。
第二步:认识 base
环境和那个恼人的 (base)
提示
安装并重启终端后,你可能会注意到终端提示符前面多了一个 (base)
字样。这表明你当前正处于 Conda 的 base
环境中。如下图所示:

2f5af571fc4ea9dc637f9ace910b9c16
- 什么是
base
环境? 它是 Conda 安装时创建的默认环境,包含了 Conda 自身运行所需的各种组件以及你安装时指定的 Python 版本。由于你安装的是完整的 Anaconda,base
环境中还预装了大量的科学计算和数据分析库,比如 NumPy, pandas, SciPy, scikit-learn 等。可以理解为 Conda 的“根”环境。 - 为什么会有
(base)
提示? 这是conda init
命令帮你做的设置,它让 Conda 在你每次打开终端时自动激活base
环境,这样你就可以直接使用conda
命令了。
【重点!】不建议在 base
环境中进行项目开发和安装项目依赖!
尽管 Anaconda 的 base
环境预装了很多有用的包,但为了避免不同项目之间的依赖冲突,以及保持环境的可重现性,强烈建议你为每个具体的项目创建独立的虚拟环境。将 base
环境视为一个管理 Conda 和创建其他环境的起点即可。
第三步:关闭烦人的 (base)
提示(以及取消自动激活)
如果你觉得终端前面总是显示 (base)
很碍眼,并且希望只在需要时手动激活环境,可以取消 Conda 的自动激活 base
环境设置。
在终端中运行以下命令:
conda config --set auto_activate_base false
执行完成后,关闭并重新打开终端。你会发现 (base)
提示消失了。现在,你需要手动激活任何你想使用的 Conda 环境。
第四步:创建和管理你的虚拟环境
现在,我们来学习如何创建用于具体项目的虚拟环境。
查看所有环境: 在创建之前,可以先看看当前有哪些环境(初始应该有一个
base
):conda env list # 或 conda info --envs
创建一个新的虚拟环境: 使用
conda create
命令,-n
参数后面是环境的名称,你可以随意命名(建议使用与项目相关的名称)。conda create -n my_project_env
这个命令会创建一个空环境,包含最基本的 Conda 组件和默认的 Python 版本(通常是安装 Anaconda 时自带的 Python 版本)。
创建环境并指定 Python 版本: 在实际开发中,你经常需要指定项目使用的 Python 版本:
conda create -n my_project_env python=3.9
这会创建一个名为
my_project_env
的环境,并在其中安装 Python 3.9。创建环境并安装初始包 (包括 pip 小技巧!): 你可以在创建环境的同时安装一些必需的包,包括
pip
!这样就省去了激活环境后再安装pip
的步骤。conda create -n my_project_env python=3.9 numpy pandas pip
这个命令会创建一个使用 Python 3.9 的环境,并安装
numpy
,pandas
, 以及pip
包。这样创建出来的环境,激活后就可以直接使用pip install
了。复制(克隆)现有环境: 如果你希望基于一个现有环境(比如
base
环境,或者你之前配置好的某个环境)来创建一个新环境,并继承其中所有的包,可以使用--clone
参数:conda create -n new_env_name --clone existing_env_name
例如,要复制
base
环境来创建一个名为my_base_copy
的新环境:conda create -n my_base_copy --clone base
这个命令会创建一个
my_base_copy
环境,其中包含了base
环境中所有已安装的包。这在你想要基于一个已有的环境快速启动新项目时非常方便。但请记住,即使是复制base
环境,我们仍然建议在这个新环境中进行项目开发,而不是直接在原始的base
环境中。激活(进入)虚拟环境: 要开始在某个环境工作,需要先激活它:
conda activate my_project_env
如果之前关闭了自动激活
base
,终端提示符会从普通状态变成显示(my_project_env)
,表示你已进入该环境。如果之前没关自动激活,可能会从(base)
变成(my_project_env)
。在环境中安装包: 激活环境后,你就可以使用
conda install
或pip install
在当前环境中安装项目所需的包了。优先使用
conda install
: Conda 会检查环境中的所有包依赖,更好地避免冲突,并且可以安装非 Python 的依赖。conda install tensorflow
使用
pip install
: 当需要的包在 Conda 仓库中没有,或者你需要 PyPI 上的特定版本时,可以使用pip
(前提是环境中已经安装了pip
):pip install some-package-from-pypi
查看环境中的包:
conda list
退出虚拟环境: 完成工作后,可以退出当前环境,回到之前的环境(或者回到没有环境激活的状态):
conda deactivate
删除虚拟环境: 如果某个项目完成了,不再需要其环境,可以将其删除:
conda remove -n my_project_env --all
注意: 这个操作会删除环境及其内部安装的所有包,请谨慎操作。
第五步:再次强调:虚拟环境与 base
环境的关系
理解这一点非常重要:
- 当你使用
conda create -n new_env ...
创建一个新环境时,这个新环境是一个独立的、相对干净的环境。 - 它不会自动继承
base
环境中已经安装的第三方包。即使 Anaconda 的base
环境预装了很多包,新环境也只会包含你明确指定的 Python 版本和创建时指定的包。 - 你需要在新环境中显式地安装所需的 Python 版本和所有库。
这种隔离性是 Conda 解决依赖冲突的关键。保持 base
环境的纯净(或者只用于一些通用的、不常变动的工具),只在独立的虚拟环境中安装项目依赖,是使用 Conda 的黄金法则。
总结与最佳实践
- 使用 Conda 管理你的 Python 环境,避免依赖冲突。
- 通过下载 Anaconda PKG 包在 macOS 上进行安装是一个方便的选择。
- 理解
base
环境是 Conda 的基础,但不要在其中进行项目开发。 - 使用
conda config --set auto_activate_base false
关闭烦人的(base)
自动激活。 - 为每个项目创建独立的虚拟环境:
- 从头创建:
conda create -n project_name python=x.x package1 package2 ... pip
。 - 克隆现有环境:
conda create -n new_env_name --clone existing_env_name
。
- 从头创建:
- 使用
conda activate your_env
进入环境,conda deactivate
退出。 - 在激活的环境中使用
conda install
或pip install
安装包。 - 记住:从头创建的新环境默认是干净的,不继承
base
的包;而克隆的环境会完全复制源环境的包。
掌握了这些基础,你就已经迈出了使用 Conda 进行高效、清晰的 Python 开发的第一步。现在,去为你的下一个项目创建一个专属的 Conda 环境吧!
有什么问题或心得,欢迎在评论区交流!