管理环境#

使用 conda,您可以创建、导出、列出、删除和更新环境中安装的不同版本的 Python 和/或包。在环境之间切换或移动称为激活环境。您还可以共享环境文件。

此页面上描述的命令有许多可用选项。有关所有可用命令的详细参考,请参阅 命令

使用命令创建环境#

使用终端进行以下步骤

  1. 要创建环境

    conda create --name <my-env>
    

    <my-env> 替换为您环境的名称。

  2. 当 conda 询问您是否继续时,键入 y

    proceed ([y]/n)?
    

    这将在 /envs/ 中创建 myenv 环境。此环境中不会安装任何包。

  3. 要创建具有特定 Python 版本的环境

    conda create -n myenv python=3.9
    
  4. 要创建具有特定包的环境

    conda create -n myenv scipy
    

    conda create -n myenv python
    conda install -n myenv scipy
    
  5. 要创建具有特定版本包的环境

    conda create -n myenv scipy=0.17.3
    

    conda create -n myenv python
    conda install -n myenv scipy=0.17.3
    
  6. 要创建具有特定 Python 版本和多个包的环境

    conda create -n myenv python=3.9 scipy=0.17.3 astroid babel
    

    提示

    一次性安装您想要在此环境中的所有程序。一次安装一个程序可能会导致依赖冲突。

要每次创建新环境时自动安装 pip 或其他程序,请将默认程序添加到 create_default_packages 配置文件的 .condarc 部分。 每次创建新环境时都会安装默认包。如果您不希望在特定环境中安装默认包,请使用 --no-default-packages 标志

conda create --no-default-packages -n myenv python

提示

您可以向 conda create 命令添加更多内容。有关详细信息,请运行 conda create --help

从 environment.yml 文件创建环境#

使用终端进行以下步骤

  1. environment.yml 文件创建环境

    conda env create -f environment.yml
    

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

  2. 激活新环境: conda activate myenv

  3. 验证新环境是否已正确安装

    conda env list
    

    您也可以使用 conda info --envs

为环境指定不同的目标平台#

默认情况下,conda 将创建以其当前运行平台为目标的环境。您可以通过运行 conda info 并检查 platform 条目来检查您当前所在的平台。

但是,在某些情况下,您可能想要为不同的目标平台或架构创建环境。为此,请使用 conda createconda env create 命令中提供的 --platform 标志。有关允许值的更多信息,请参阅 conda create 中的 --subdir, --platform

例如,在 Apple Silicon 平台上运行 macOS 的用户可能想要为 Intel 处理器创建一个 python 环境,并使用 Rosetta 模拟可执行文件。命令将是

conda create --platform osx-64 --name python-x64 python

注意

您不能为现有环境指定 --platform 标志。创建后,环境将使用自定义配置进行注释,并且对其后续操作将记住目标平台。

此标志还允许指定不同的操作系统(例如,在 macOS 上创建 Linux 环境),但我们不建议在 --dry-run 操作之外使用它。操作系统不匹配的常见问题包括

  • 由于缺少虚拟包,无法解析环境。您可以通过导出必要的 CONDA_OVERRIDE_**** 环境变量来解决此问题。例如,从 macOS 为 Linux 求解时,您可能需要 CONDA_OVERRIDE_LINUX=1CONDA_OVERRIDE_GLIBC=2.17

  • 可以解析环境,但由于文件系统限制(不区分大小写的系统、不兼容的路径等),提取和链接失败。唯一的解决方法是使用 --dry-run --json 获取解决方案并将有效负载处理成可以与目标机器共享的锁定文件。有关更多详细信息,请参阅 创建显式锁定文件而不创建环境

为环境指定位置#

您可以通过在创建环境时提供目标目录的路径来控制 conda 环境的存放位置。例如,以下命令将在当前工作目录的子目录中创建一个名为 envs 的新环境

conda create --prefix ./envs jupyterlab=3.2 matplotlib=3.5 numpy=1.21

然后,您可以使用用于激活按名称创建的环境的相同命令来激活使用前缀创建的环境

conda activate ./envs

在创建环境时指定项目目录子目录的路径具有以下好处

  • 通过将环境作为子目录包含在内,可以轻松判断您的项目是否使用了隔离环境。

  • 它使您的项目更加独立,因为所有内容(包括所需的软件)都包含在单个项目目录中。

在子目录中创建项目环境的另一个好处是,您可以为所有环境使用相同的名称。如果您将所有环境都保存在 envs 文件夹中,则必须为每个环境指定不同的名称。

在默认 envs 文件夹之外放置 conda 环境时,需要注意一些事项。

  1. Conda 无法再使用 --name 标志找到您的环境。您通常需要传递 --prefix 标志以及环境的完整路径才能找到环境。

  2. 在创建 conda 环境时指定安装路径会导致您的命令提示符现在以活动环境的绝对路径而不是环境名称为前缀。

使用其前缀激活环境后,您的提示符将类似于以下内容

(/absolute/path/to/envs) $

这可能会导致长前缀

(/Users/USER_NAME/research/data-science/PROJECT_NAME/envs) $

要删除 shell 提示符中的这个长前缀,请修改 .condarc 文件中的 env_prompt 设置

conda config --set env_prompt '({name})'

如果您已经有一个 .condarc 文件,这将编辑您的 .condarc 文件,如果您没有,则创建一个 .condarc 文件。

现在,您的命令提示符将显示活动环境的通用名称,即环境根文件夹的名称

$ cd project-directory
$ conda activate ./env
(env) project-directory $

更新环境#

您可能需要出于多种原因更新您的环境。例如,可能是以下情况:

  • 您的核心依赖项之一刚刚发布了新版本(依赖项版本号更新)。

  • 您需要一个额外的包用于数据分析(添加新依赖项)。

  • 您找到了一个更好的包,不再需要旧包(添加新依赖项并删除旧依赖项)。

如果发生任何这些情况,您所需要做的就是相应地更新您的 environment.yml 文件的内容,然后运行以下命令

conda env update --file environment.yml --prune

注意

--prune 选项使 conda 删除环境中不再需要的任何依赖项。

克隆环境#

使用终端进行以下步骤

您可以通过克隆环境来制作环境的精确副本

conda create --name myclone --clone myenv

注意

myclone 替换为新环境的名称。将 myenv 替换为您要复制的现有环境的名称。

要验证副本是否已创建

conda info --envs

在显示的环境列表中,您应该看到源环境和新副本。

构建相同的 conda 环境#

您可以使用显式规范文件在相同的操作系统平台上构建相同的 conda 环境,无论是在同一台机器上还是在不同的机器上。

使用终端进行以下步骤

  1. 运行 conda list --explicit 以生成如下的规范列表

    # This file may be used to create an environment using:
    # $ conda create --name <env> --file <this file>
    # platform: osx-64
    @EXPLICIT
    https://repo.anaconda.com/pkgs/free/osx-64/mkl-11.3.3-0.tar.bz2
    https://repo.anaconda.com/pkgs/free/osx-64/numpy-1.11.1-py35_0.tar.bz2
    https://repo.anaconda.com/pkgs/free/osx-64/openssl-1.0.2h-1.tar.bz2
    https://repo.anaconda.com/pkgs/free/osx-64/pip-8.1.2-py35_0.tar.bz2
    https://repo.anaconda.com/pkgs/free/osx-64/python-3.5.2-0.tar.bz2
    https://repo.anaconda.com/pkgs/free/osx-64/readline-6.2-2.tar.bz2
    https://repo.anaconda.com/pkgs/free/osx-64/setuptools-25.1.6-py35_0.tar.bz2
    https://repo.anaconda.com/pkgs/free/osx-64/sqlite-3.13.0-0.tar.bz2
    https://repo.anaconda.com/pkgs/free/osx-64/tk-8.5.18-0.tar.bz2
    https://repo.anaconda.com/pkgs/free/osx-64/wheel-0.29.0-py35_0.tar.bz2
    https://repo.anaconda.com/pkgs/free/osx-64/xz-5.2.2-0.tar.bz2
    https://repo.anaconda.com/pkgs/free/osx-64/zlib-1.2.8-3.tar.bz2
    
  2. 要将此规范列表创建为当前工作目录中的文件,请运行

    conda list --explicit > spec-file.txt
    

    注意

    您可以使用 spec-file.txt 作为文件名,或将其替换为您选择的文件名。

    显式规范文件通常不是跨平台的,因此顶部会有一条注释,例如 # platform: osx-64,显示创建它的平台。此平台是已知此规范文件可以工作的平台。在其他平台上,指定的软件包可能不可用,或者某些已在规范中的关键软件包可能缺少依赖项。

    要使用规范文件在同一台机器或另一台机器上创建相同的环境

    conda create --name myenv --file spec-file.txt
    

    要使用规范文件将其列出的软件包安装到现有环境中

    conda install --name myenv --file spec-file.txt
    

    从规范文件安装时,Conda 不会检查架构或依赖项。为确保软件包正常工作,请确保该文件是从工作环境创建的,并在相同的架构、操作系统和平台(如 linux-64 或 osx-64)上使用它。

激活环境#

激活环境对于使环境中的软件良好运行至关重要。激活包含两个主要功能:为环境将条目添加到 PATH,以及运行环境可能包含的任何激活脚本。这些激活脚本是软件包如何设置对其操作可能必要的任意环境变量的方式。您还可以使用 config API 设置环境变量

激活会前置到 PATH。这仅在您激活环境时生效,因此它是终端会话本地的,而不是全局的。

注意

安装 Anaconda 时,您可以选择“将 Anaconda 添加到我的 PATH 环境变量”。不建议这样做,因为它会将 Anaconda 追加到 PATH。当安装程序追加到 PATH 时,它不会调用激活脚本。

注意

在 Windows 上,PATH 由两部分组成,系统 PATH 和用户 PATH。系统 PATH 始终排在第一位。当您为“仅我”安装 Anaconda 时,我们会将其添加到用户 PATH。当您为“所有用户”安装时,我们会将其添加到系统 PATH。在前一种情况下,您最终可能会遇到系统 PATH 值优先于您的条目的情况。在后一种情况下,则不会。我们不建议多用户安装

要激活环境:conda activate myenv

注意

myenv 替换为环境名称或目录路径。

Conda 将路径名 myenv 前置到您的系统命令。

如果您尚未激活环境,您可能会收到警告消息

Warning:
This Python interpreter is in a conda environment, but the environment has
not been activated. Libraries may fail to load. To activate this environment
please see https://conda.io/activation.

如果您收到此警告,则需要激活您的环境。要在 Windows 上执行此操作,请在终端窗口中运行:c:\Anaconda3\Scripts\activate base

Windows 对正确的激活非常敏感。这是因为 Windows 库加载器不支持库和可执行文件知道在哪里搜索其依赖项(RPATH)的概念。相反,Windows 依赖于动态链接库搜索顺序

如果环境未激活,则找不到库,并且会出现很多错误。当子环境中的 Python 找不到必要的 OpenSSL 库时,HTTP 或 SSL 错误是常见错误。

Conda 本身包含一些特殊的解决方法来添加其必要的 PATH 条目。这使其可以在不激活或激活任何子环境的情况下被调用。通常,在不首先激活环境的情况下调用环境中的任何可执行文件都可能无法工作。为了能够在激活的环境中运行可执行文件,您可能对 conda run 命令感兴趣。

如果您在 PATH 中遇到错误,请查看我们的故障排除

Conda 初始化#

早期版本的 conda 引入了脚本,以使激活行为在不同操作系统之间保持一致。Conda 4.4 允许 conda activate myenv。Conda 4.6 添加了广泛的初始化支持,以便 conda 在各种 shell(bash、zsh、csh、fish、xonsh 等)上更快且更少破坏性地工作。现在,这些 shell 可以使用 conda activate 命令。消除修改 PATH 的需要使 conda 对系统上其他软件的破坏性更小。有关更多信息,请阅读 conda init --help 的输出。

使用 conda init 时,一个设置可能对您有用

auto_activate_base: bool

此设置控制 conda 在首次启动时是否激活您的 base 环境。无论哪种方式,您都可以使用 conda 命令,但在不激活环境的情况下,环境中的其他程序都将不可用,直到使用 conda activate base 激活环境为止。人们有时会选择此设置来加快 shell 启动的时间,或防止 conda 安装的软件自动隐藏他们的其他软件。

嵌套激活#

默认情况下,conda activate 将在激活新环境之前停用当前环境,并在停用新环境时重新激活它。有时您可能希望保留当前环境 PATH 条目,以便您可以继续轻松访问第一个环境中的命令行程序。当常用命令行实用程序安装在 base 环境中时,最常遇到这种情况。要在 PATH 中保留当前环境,您可以使用以下命令激活新环境

conda activate --stack myenv

如果您希望始终在从最外层环境(通常是 base 环境)开始时堆叠,则可以设置 auto_stack 配置选项

conda config --set auto_stack 1

您可以为更深层次的自动堆叠指定更大的数字,但不建议这样做,因为更深层次的堆叠更可能导致混淆。

用于 DLL 加载验证的环境变量#

如果您不想激活环境,并且希望 Python 用于 DLL 加载验证,请按照故障排除方向进行操作。

警告

如果您选择不激活环境,则加载和设置环境变量以激活脚本将不会发生。我们仅支持激活。

停用环境#

要停用环境,请键入:conda deactivate

Conda 从您的系统命令中删除当前活动环境的路径名。

注意

要简单地返回到 base 环境,最好调用不指定环境的 conda activate,而不是尝试停用。如果您从 base 环境运行 conda deactivate,您可能会失去完全运行 conda 的能力。别担心,这仅限于此 shell - 您可以启动一个新的 shell。但是,如果环境是使用 --stack 激活的(或自动堆叠),则最好使用 conda deactivate

确定当前环境#

使用终端进行以下步骤。

默认情况下,活动环境(您当前正在使用的环境)显示在命令提示符的开头,用括号 () 或方括号 [] 括起来

(myenv) $

如果您没有看到此提示,请运行

conda info --envs

在显示的环境列表中,您当前的环境会用星号 (*) 突出显示。

默认情况下,命令提示符设置为显示活动环境的名称。要禁用此选项

conda config --set changeps1 false

要重新启用此选项

conda config --set changeps1 true

查看环境列表#

要查看所有环境的列表,请在终端窗口中运行

conda info --envs

conda env list

将显示类似于以下的列表

conda environments:
myenv                 /home/username/miniconda/envs/myenv
snowflakes            /home/username/miniconda/envs/snowflakes
bunnies               /home/username/miniconda/envs/bunnies

如果此命令由管理员运行,将显示属于所有用户的所有环境的列表。

查看环境中软件包的列表#

要查看特定环境中安装的所有软件包的列表

  • 如果环境未激活,请在终端窗口中运行

    conda list -n myenv
    
  • 如果环境已激活,请在终端窗口中运行

    conda list
    
  • 要查看特定软件包是否安装在环境中,请在终端窗口中运行

    conda list -n myenv scipy
    

在环境中使用 pip#

要在您的环境中使用 pip,请在终端窗口中运行

conda install -n myenv pip
conda activate myenv
pip <pip_subcommand>

将 pip 和 conda 一起使用时可能会出现问题。当结合使用 conda 和 pip 时,最好使用隔离的 conda 环境。只有在使用 conda 安装尽可能多的软件包后,才应使用 pip 安装任何剩余的软件。如果需要对环境进行修改,最好创建一个新环境,而不是在 pip 之后运行 conda。在适当的情况下,conda 和 pip 要求应存储在文本文件中。

我们建议您

仅在 conda 之后使用 pip
  • 使用 conda 安装尽可能多的要求,然后使用 pip。

  • 应使用 --upgrade-strategy only-if-needed(默认值)运行 Pip。

  • 请勿将 pip 与 --user 参数一起使用,避免所有用户安装。

使用 conda 环境进行隔离
  • 创建一个 conda 环境以隔离 pip 所做的任何更改。

  • 由于硬链接,环境占用空间很小。

  • 应注意避免在 root 环境中运行 pip。

如果需要更改,请重新创建环境
  • 一旦使用了 pip,conda 将不会意识到这些更改。

  • 要安装其他 conda 软件包,最好重新创建环境。

将 conda 和 pip 要求存储在文本文件中
  • 软件包要求可以通过 --file 参数传递给 conda。

  • Pip 接受带有 -r--requirements 的 Python 软件包列表。

  • Conda env 将基于包含 conda 和 pip 要求的文件导出或创建环境。

设置环境变量#

如果您想将环境变量与环境关联,可以使用 config API。建议使用此方法来替代使用激活和停用脚本,因为这些脚本是任意代码的执行,可能不安全。

首先,创建您的环境并激活它

conda create -n test-env
conda activate test-env

要列出您可能拥有的任何变量,请运行 conda env config vars list

要设置环境变量,请运行 conda env config vars set my_var=value

设置环境变量后,您必须重新激活您的环境: conda activate test-env

要检查环境变量是否已设置,请运行 echo $my_var (在 Windows 上为 echo %my_var%)或 conda env config vars list

当您停用您的环境时,您可以使用相同的命令来查看环境变量是否消失。

您可以使用 -n-p 标志来指定您想要影响的环境。-n 标志允许您命名环境,-p 允许您指定环境的路径。

要取消设置环境变量,请运行 conda env config vars unset my_var -n test-env

当您停用您的环境时,您可以重新运行 echo my_varconda env config vars list,以查看环境变量是否消失。

使用 conda env config vars 设置的环境变量将保留在 conda env export 的输出中。此外,您可以在 environment.yml 文件中声明环境变量,如下所示

name: env-name
channels:
  - conda-forge
  - defaults
dependencies:
  - python=3.7
  - codecov
variables:
  VAR1: valueA
  VAR2: valueB

保存环境变量#

Conda 环境可以包含已保存的环境变量。

假设您希望环境 “analytics” 存储登录服务器所需的密钥和配置文件的路径。以下部分解释了如何在 WindowsmacOS 或 Linux 上编写名为 env_vars 的脚本来执行此操作。

这种类型的脚本文件可以是 conda 包的一部分,在这种情况下,当包含该包的环境被激活时,这些环境变量将变为活动状态。

您可以随意命名这些脚本。但是,多个包可能会创建脚本文件,因此请务必使用描述性名称,且这些名称不被其他包使用。一种常见的选择是以 packagename-scriptname.sh 的形式命名脚本,或者在 Windows 上,以 packagename-scriptname.bat 的形式命名脚本。

Windows#

  1. 通过在命令 shell 中运行 %CONDA_PREFIX%,在终端窗口中找到 conda 环境的目录。

  2. 进入该目录并创建以下子目录和文件

    cd %CONDA_PREFIX%
    mkdir .\etc\conda\activate.d
    mkdir .\etc\conda\deactivate.d
    type NUL > .\etc\conda\activate.d\env_vars.bat
    type NUL > .\etc\conda\deactivate.d\env_vars.bat
    
  3. 按如下方式编辑 .\etc\conda\activate.d\env_vars.bat

    set MY_KEY='secret-key-value'
    set MY_FILE=C:\path\to\my\file
    
  4. 按如下方式编辑 .\etc\conda\deactivate.d\env_vars.bat

    set MY_KEY=
    set MY_FILE=
    

当您运行 conda activate analytics 时,环境变量 MY_KEYMY_FILE 将设置为您写入文件的值。当您运行 conda deactivate 时,这些变量将被删除。

macOS 和 Linux#

  1. 通过在终端中运行 echo $CONDA_PREFIX,在终端窗口中找到 conda 环境的目录。

  2. 进入该目录并创建以下子目录和文件

    cd $CONDA_PREFIX
    mkdir -p ./etc/conda/activate.d
    mkdir -p ./etc/conda/deactivate.d
    touch ./etc/conda/activate.d/env_vars.sh
    touch ./etc/conda/deactivate.d/env_vars.sh
    
  3. 按如下方式编辑 ./etc/conda/activate.d/env_vars.sh

    #!/bin/sh
    
    export MY_KEY='secret-key-value'
    export MY_FILE=/path/to/my/file/
    
  4. 按如下方式编辑 ./etc/conda/deactivate.d/env_vars.sh

    #!/bin/sh
    
    unset MY_KEY
    unset MY_FILE
    

当您运行 conda activate analytics 时,环境变量 MY_KEYMY_FILE 将设置为您写入文件的值。当您运行 conda deactivate 时,这些变量将被删除。

共享环境#

您可能想要与其他人共享您的环境,例如,以便他们可以重新创建您已完成的测试。为了让他们能够快速重现您的环境,包括其所有软件包和版本,请向他们提供您的 environment.yml 文件的副本。

导出 environment.yml 文件#

注意

如果您当前目录中已有一个 environment.yml 文件,则在此任务期间它将被覆盖。

  1. 激活要导出的环境:conda activate myenv

    注意

    myenv 替换为环境的名称。

  2. 将您的活动环境导出到新文件

    conda env export > environment.yml
    

    注意

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

  3. 通过电子邮件或复制导出的 environment.yml 文件给其他人。

跨平台导出环境文件#

如果您希望您的环境文件跨平台工作,您可以使用 conda env export --from-history 标志。这将仅包括您明确要求的软件包,而不是包括您环境中的每个软件包。

例如,如果您创建一个环境并安装 Python 和一个软件包

conda install python=3.7 codecov

这将下载并安装许多额外的软件包以解决依赖关系。这将引入可能与跨平台不兼容的软件包。

如果您使用 conda env export,它将导出所有这些软件包。但是,如果您使用 conda env export --from-history,它将仅导出您专门选择的那些

(env-name) ➜  ~ conda env export --from-history
name: env-name
channels:
  - conda-forge
  - defaults
dependencies:
  - python=3.7
  - codecov
prefix: /Users/username/anaconda3/envs/env-name

注意

如果您在 macOS 上安装了 Anaconda 2019.10,您的前缀可能是 /Users/username/opt/envs/env-name

手动创建环境文件#

您可以手动创建一个环境文件 (environment.yml) 以与他人共享。

示例:一个简单的环境文件

name: stats
dependencies:
  - numpy
  - pandas

示例:一个更复杂的环境文件

name: stats2
channels:
  - javascript
dependencies:
  - python=3.9
  - bokeh=2.4.2
  - conda-forge::numpy=1.21.*
  - nodejs=16.13.*
  - flask
  - pip
  - pip:
    - Flask-Testing

注意

使用通配符

请注意,在复杂的环境文件中定义一些版本时使用了通配符 *。在保持主要版本和次要版本固定的同时允许补丁为任何数字,这使您可以使用环境文件来获取任何错误修复,同时仍保持环境的一致性。有关软件包安装值的更多信息,请参阅 软件包搜索和安装规范

在 “channels” 之外指定通道

您可能偶尔想要指定 conda 将使用哪个通道来安装特定的软件包。要完成此操作,请在 dependencies: 中使用 channel::package 语法,如上面 conda-forge::numpy(版本号可选)所示。指定的通道不需要存在于 channels: 列表中,如果您想要从社区通道(例如 conda-forge)安装某些但并非所有软件包,这将非常有用。

您可以通过将 nodefaults 添加到通道列表来排除默认通道。

channels:
  - javascript
  - nodefaults

这等效于将 --override-channels 选项传递给大多数 conda 命令。

nodefaults 添加到 environment.yml 中的通道列表类似于从 通道列表 中的 .condarc 文件中删除 defaults。但是,更改 environment.yml 仅影响您的 conda 环境之一,而更改 .condarc 会影响所有环境。

有关从此 environment.yml 文件创建环境的详细信息,请参阅 从 environment.yml 文件创建环境

恢复环境#

Conda 保留对您的环境所做的所有更改的历史记录,因此您可以轻松地“回滚”到以前的版本。要列出对当前环境的每个更改的历史记录:conda list --revisions

要将环境恢复到以前的版本:conda install --revision=REVNUMconda install --rev REVNUM

注意

将 REVNUM 替换为修订号。

示例:如果您想将您的环境恢复到修订版本 8,请运行 conda install --rev 8

删除环境#

要删除环境,请在终端窗口中运行

conda remove --name myenv --all

您可以改为使用 conda env remove --name myenv

要验证环境是否已删除,请在终端窗口中运行

conda info --envs

显示的 environment 列表不应显示已删除的环境。

创建显式锁定文件而不创建环境#

@EXPLICIT 锁定文件允许您(重新)创建环境而无需调用求解器。它们由 @EXPLICIT 标头加上 conda 软件包 URL 列表组成,可以选择后跟其 MD5 或 SHA256 哈希值。

它们可以从现有环境通过 conda list --explicit 获取,如 构建相同的 conda 环境 中所示。

但是,如果您只需要锁定文件怎么办?您是否需要先创建一个临时环境,然后再删除它?幸运的是,有一种方法:您可以在 JSON 模式下调用 conda,然后使用 jq 处理输出。

提示

您的系统中需要 jq。如果您还没有安装它,您可以通过 conda 安装它(例如 conda create -n jq jq)或通过您的系统软件包管理器安装它。

对于 Linux 和 macOS,命令如下所示(将 MATCHSPECS_GO_HERE 替换为您想要的相关软件包)

echo "@EXPLICIT" > explicit.txt
CONDA_PKGS_DIRS=$(mktemp -d) conda create --dry-run MATCHSPECS_GO_HERE --json | jq -r '.actions.FETCH[] | .url + "#" + .md5' >> explicit.txt

Windows 中的语法只需要一些小的更改

echo "@EXPLICIT" > explicit.txt
set "CONDA_PKGS_DIRS=%TMP%\conda-%RANDOM%"
conda create --dry-run MATCHSPECS_GO_HERE --json | jq -r '.actions.FETCH[] | .url + "#" + .md5' >> explicit.txt
set "CONDA_PKGS_DIRS="

生成的 explicit.txt 可用于创建新环境,命令如下

conda create -n new-environment --file explicit.txt