运行环境#

conda 中的环境是独立的隔离空间,您可以在其中安装特定版本的软件包,包括依赖项、库和 Python 版本。这种隔离有助于避免包版本之间的冲突,并确保您的项目具有所需的确切库和工具。

为什么要创建新环境?#

您可能希望创建新环境的原因有多种:

依赖项隔离 - 环境将软件及其依赖项与计算机上安装的其余软件隔离开来。这意味着您可以在计算机上同时安装 Python 3.9 和 Python 3.10,并使用这两个版本而不会遇到问题。

可重现性 - 通过为每个项目创建一个环境,您可以确保您的代码在不同计算机上一致地运行。锁定您的环境以确保它无限期地保持可重现性,然后共享环境配置以允许其他人复制您的设置。

易于管理 - Conda 提供了轻松创建、管理和删除环境的工具。您可以在环境之间快速切换,从而轻松管理具有不同要求的多个项目。

测试和开发 - 环境非常适合测试新的软件包或库,而不会影响您的稳定开发设置。您可以自由试验并在事情不顺利时删除环境,而不会影响您的其他项目。

为什么我不应该在基本环境中工作?#

首次安装和使用 conda 时,您可能会看到对名为base或 “base environment” 的 “基本环境”。此环境是 conda 本身的安装位置,并且只能用于安装 anaconda、conda 和与 conda 相关的软件包,例如anaconda-clientconda-build.

但是,对于您的项目,Anaconda 强烈建议创建新的工作环境。这可以保护您的基本环境不会因复杂的依赖关系冲突而中断,并允许您在其他计算机上轻松管理和重现您的环境。

使用环境#

为方便起见,此处详细介绍了用户在管理环境时采取的最常见作。有关作的完整列表和更全面的指南,请参阅官方 conda 文档中的管理环境。或者,按照 Anaconda Cloud 上的 conda 环境入门教程进行作。

提示

如果您希望通过我们的图形界面 Navigator 创建和管理您的环境,请参阅管理环境

创建环境#

通过打开 Anaconda Prompt(macOS/Linux 上的终端)并按照以下用例的步骤创建 conda 环境:

以下命令创建一个新环境并下载指定的包及其依赖项:

# Replace <ENV_NAME> with a name for your environment
# Replace <PACKAGE> with your desired package
# Replace <VERSION> with your desired version (optional)
conda create --name <ENV_NAME> <PACKAGE>=<VERSION>

例:

conda create --name myenv python=3.11 beautifulsoup4 docutils jinja2=3.1.4 wheel
示例版本匹配输入

版本匹配使用 Matchspec 协议。以下是在创建环境时为包指定版本的一些示例。有关更多信息,请参阅官方 conda 文档中的 MatchSpec。如果您未指定软件包版本,conda 将尝试从其可用通道安装软件包的最新版本。

  • python=3.12.1- 将包与指定的确切名称和版本匹配。

  • python>=3.11- 匹配大于或等于指定版本的任何包版本。

  • python<=3.12- 匹配小于或等于指定版本的任何包版本。

  • python>3.10,<3.12- 匹配指定版本之间的包的任何版本,但不包括指定版本。

  • python>=3.10,<=3.12- 匹配指定版本之间的包的任何版本,包括指定的版本。

  • python[version='3.12.*']- 匹配以 3.12 开头的任何 python 软件包版本。

如果有人与您共享了环境,或者您导出了.yml文件在新计算机上重新创建环境,请从包含.yml文件:

conda env create --file environment.yml

注意

文件的第一行设置环境的名称。有关更多信息,请参阅手动创建环境文件

激活环境#

由于环境是隔离空间,因此您一次只能使用一个环境。选择要使用的环境称为激活它。

通过运行以下命令激活环境:

# Replace <ENV_NAME> with the name of the environment you want to activate
conda activate <ENV_NAME>

在环境之间切换#

当您准备好在项目之间切换时,只需激活另一个项目的环境即可。激活其他环境将停用您当前的环境。

  1. (可选)通过运行以下命令查看所有环境的列表:

    conda info --envs
    
  2. 要切换到其他环境,请通过运行以下命令将其激活:

    # Replace <ENV_NAME> with the name of the environment you want to switch to
    conda activate <ENV_NAME>
    

锁定环境#

确保您的项目无限期地保持可重现的最可靠方法是 “锁定” 其环境。锁定环境会创建一个完全指定的环境,该环境包含项目中使用的所有包及其依赖项,这些包都配置为特定版本。这可确保您的项目将完全按照最初的配置进行复制,因为如果发布了新的包依赖项,则永远不会发生意外的更新或更改。

锁定您的项目需要conda-project软件包。通过运行以下命令安装软件包:

# Replace <ENV> with the environment you want to lock
conda activate <ENV>
conda install conda-project

如果您的项目不包含environment.yml文件中,通过运行以下命令创建一个:

conda-project init

然后,您可以通过运行以下命令来锁定项目的环境:

conda-project lock

锁定您的项目会生成一个conda-lock.default.yml文件,您可以导出该文件以与他人共享。

共享环境#

与其他人共享您的环境允许他们使用 conda 在其计算机上重新创建您的环境

要共享环境及其软件包,您必须将环境的配置导出到.yml文件。

谨慎

简单地将 Anaconda 或 Miniconda 文件复制到新目录或其他计算机不会重新创建环境。您必须将环境作为一个整体导出。

导出环境配置.yml文件#

警告

如果您已经有环境配置.yml文件,则在导出过程中将被覆盖。

  1. 通过运行以下命令激活要导出的环境:

    # Replace <ENV_NAME> with the name of the environment you want exported
    conda activate <ENV_NAME>
    
  2. 通过运行以下命令导出环境:

    conda env export > environment.yml
    

    注意

    此文件处理环境的 pip 包和 conda 包。

  3. 共享导出的环境配置.yml文件。

停用环境#

最佳做法是在完成环境中的工作后停用环境。

要停用您的活动环境,请运行以下命令:

conda deactivate