conda创建、查看、删除虚拟环境

发布时间:2024年01月06日

Conda是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。Conda适用于Linux、OS X和Windows,最初是为Python语言开发,现在已不限制语言,支持Python、R、Ruby、Lua、Scala、Java、JavaScript、C/C++、FORTRAN等。

Conda的功能包括包管理和环境管理。在包管理方面,Conda可以自动化安装、更新、卸载Python包和依赖包。在环境管理方面,Conda类似于Virtualenv,可以解决多版本Python并存切换和不同工程环境分隔的问题。

Conda是Anaconda中的一个工具,可以在终端窗口通过命令行使用,也可以在Anaconda Navigator中通过图形化界面使用。Conda下一切都是包,包括Python和conda自己。因此,Conda可以被视为一个集成了pip(包管理)、vitualenv(环境管理)和pyenv(py版本管理)的命令行工具。

安装

获取?conda 的最快方法是安装 Miniconda,这是?Anaconda?的迷你版本,仅包含?conda?和 它的依赖关系。如果您更喜欢 conda 以及超过 7,500 个开源 软件包,安装 Anaconda。

我们建议您为本地用户安装 Anaconda,这确实如此 不需要管理员权限,是最健壮的 安装类型。您还可以在系统范围内安装 Anaconda, 这确实需要管理员权限。

有关使用我们的图形安装程序的信息 Windows 或 macOS,请参阅安装 Anaconda?的说明。

系统要求

  • 32 位或 64 位计算机

  • 对于 Miniconda:400 MB 磁盘空间

  • 对于 Anaconda:至少需要 3 GB 磁盘空间才能下载和安装

  • Windows、macOS 或 Linux

  • 对于 Windows:Windows 8.1 或更高版本(适用于 Python 3.9)或 Windows Vista 或更高版本(适用于 Python 3.8)

注意

您不需要管理权限或 root 权限即可 如果选择用户可写的安装,请安装 Anaconda 位置。

在具有其他 Python 安装或包的系统上安装 conda

您无需卸载其他 Python 安装或 软件包,以便使用 conda。即使你已经有一个 系统 Python,来自源的另一个 Python 安装,例如 macOS Homebrew 包管理器和全局安装 来自 pip 的包,例如 pandas 和 NumPy,您不需要 在使用 Conda 之前卸载、删除或更改其中任何一个。

正常安装 Anaconda 或 Miniconda,让安装程序 将 Python 的 conda 安装添加到 PATH 环境中 变量。无需设置 PYTHONPATH 环境 变量。

查看 Python 的 conda 安装是否在 PATH 中 变量:

  • 在 Windows 上,打开 Anaconda 提示符并运行echo?%PATH%

  • 在 macOS 和 Linux 上,打开终端并运行echo?$PATH

要查看当前设置为默认安装的 Python 安装,请执行以下操作:

  • 在 Windows 上,打开 Anaconda 提示符并运行where?python

  • 在 macOS 和 Linux 上,打开终端并运行which?python

查看当前 conda 中安装了哪些包 环境及其版本号,在终端窗口中 或 Anaconda 提示符,运行 .conda?list

管理环境

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

注意

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

注意

conda?activate并且仅适用于 conda 4.6 及更高版本。 对于 4.6 之前的 conda 版本,请运行:conda?deactivate

  • Windows:或activatedeactivate

  • Linux 和 macOS:或source?activatesource?deactivate

使用命令创建环境

提示

默认情况下,环境安装在 conda 目录中的目录中。有关指定的信息,请参阅指定环境或运行的位置?一条不同的道路。envsconda?create?--help

使用终端或 Anaconda 提示符执行以下步骤:

  1. 要创建环境,请执行以下操作:

    conda create --name myenv
    

    注意

    替换为环境名称。myenv

  2. 当 conda 要求您继续时,键入:y

    proceed ([y]/n)?
    

这将在 中创建 myenv 环境。不 软件包将安装在此环境中。/envs/

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

提示

在此环境中安装所需的所有程序 同时。一次安装 1 个程序可能会导致 依赖关系冲突。

每次新 环境,将默认程序添加到create_default_packages部分 的配置文件。默认软件包是 每次创建新环境时安装。如果你不这样做 希望在特定环境中安装默认软件包, 使用标志:.condarc--no-default-packages

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

提示

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

从 environment.yml 文件创建环境

使用终端或 Anaconda 提示符执行以下步骤:

  1. 从文件创建环境:environment.yml

    conda env create -f environment.yml
    

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

  2. 激活新环境:conda?activate?myenv

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

    conda env list
    

您也可以使用 .conda?info?--envs

指定环境的位置

可以通过提供路径来控制 conda 环境所在的位置 复制到目标目录。例如 以下命令将在子目录中创建一个新环境 当前工作目录称为:envs

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

然后,使用前缀激活使用前缀创建的环境 用于激活按名称创建的环境的命令:

conda activate ./envs

指定项目目录的子目录的路径,当 创建环境具有以下好处:

  • 它可以很容易地判断您的项目是否使用隔离环境 通过将环境作为子目录包含在内。

  • 它使您的项目更加独立,包括 所需的软件包含在单个项目目录中。

在 子目录是,然后你可以对所有你的 环境。如果将所有环境都保留在文件夹中,则必须为每个环境指定不同的名称。envs

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

  1. Conda 无法再找到带有该标志的环境。 您通常需要将标志与 environment 的完整路径来查找环境。--name--prefix

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

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

(/absolute/path/to/envs) $

这可能会导致前缀过长:

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

若要在 shell 提示符中删除此长前缀,请修改env_prompt 在文件中设置:.condarc

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

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

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

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

更新环境

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

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

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

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

如果发生其中任何一种情况,您需要做的就是更新 您的文件,然后运行以下命令 命令:environment.yml

$ conda env update --prefix ./env --file environment.yml  --prune

注意

该选项会导致 conda 删除任何依赖项 环境不再需要的。--prune

克隆环境

使用终端或 Anaconda 提示符执行以下步骤:

您可以通过创建克隆来创建环境的精确副本 其中:

conda create --name myclone --clone myenv

注意

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

要验证副本是否已制作,请执行以下操作:

conda info --envs

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

构建相同的 conda 环境

您可以使用显式规范文件来构建相同的 conda 环境位于同一操作系统平台上,或者 在同一台机器或另一台机器上。

使用终端或 Anaconda 提示符执行以下步骤:

  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

    要使用 spec 文件在 同一台机器或另一台机器:

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

    要使用 spec 文件将其列出的软件包安装到 现有环境:

    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 对于“Just Me”,我们将其添加到用户?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 上,运行: Anaconda 提示符。c:\Anaconda3\Scripts\activate?base

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

如果环境未处于活动状态,则不会找到库,也不会在那里 会有很多错误。HTTP 或 SSL 错误是 子环境中的 Python 找不到必需的 OpenSSL 库。

Conda 本身包含一些特殊的解决方法来添加其必要的 PATH 条目。这使得它可以在不激活或 任何子环境都处于活动状态。通常,在 未首先激活该环境的环境可能无法正常工作。 为了能够在激活的环境中运行可执行文件,您可能需要 对命令感兴趣。conda?run

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

Conda 初始化

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

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

auto_activate_base: bool 

此设置控制 conda 是否激活您的基地 环境。无论哪种方式,您都可以使用该命令,但无需激活环境, 环境中的其他程序在以下情况下都不可用 环境是用 激活的。人 有时选择此设置来加快其外壳所需的时间 启动或阻止 Conda 安装的软件自动启动 隐藏他们的其他软件。condaconda?activate?base

嵌套激活

默认情况下,将停用当前环境 在激活新环境之前,并在以下情况下重新激活它 停用新环境。有时你可能想离开 当前环境 PATH 条目就位,以便您可以继续 从第一个环境轻松访问命令行程序。 这在常见的命令行实用程序中最常见 安装在基本环境中。保留当前环境 在 PATH 中,您可以使用以下命令激活新环境:conda?activate

conda activate --stack myenv 

如果您希望在从最外层环境开始时始终堆叠, 这通常是基本环境,您可以设置配置选项:auto_stack

conda config --set auto_stack 1 

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

DLL 加载验证的环境变量

如果您不想激活您的环境,并且想要 Python 进行 DLL 加载验证,然后按照故障排除说明进行操作

警告

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

停用环境

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

Conda 从 您的系统命令。

注意

若要简单地返回到基本环境,最好在未指定环境的情况下调用,而不是尝试停用。如果 从基础环境运行,可能会丢失 完全能够运行 conda。别担心,这是这个 shell 的本地 - 你可以 开始一个新的。但是,如果环境是使用(或自动堆叠)激活的,则最好使用 .conda?activateconda?deactivate--stackconda?deactivate

确定当前环境

使用终端或 Anaconda 提示符执行以下步骤。

默认情况下,活动环境---您当前所在的环境 using---显示在括号 () 或括号 [] 中 命令提示符的开头:

(myenv) $

如果未看到此内容,请运行:

conda info --envs

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

默认情况下,命令提示符设置为显示 活动环境。要禁用此选项,请执行以下操作:

conda config --set changeps1 false

要重新启用此选项,请执行以下操作:

conda config --set changeps1 true

查看环境列表

要查看所有环境的列表,请在终端窗口或 Anaconda 提示符,运行:

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

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

查看环境中的软件包列表

要查看特定环境中安装的所有软件包的列表,请执行以下操作:

  • 如果环境未激活,请在终端窗口或 Anaconda 提示符,运行:

    conda list -n myenv
    
  • 如果环境已激活,则在终端窗口或 Anaconda 提示符,运行:

    conda list
    
  • 要查看环境中是否安装了特定软件包,请在 终端窗口或 Anaconda 提示符,运行:

    conda list -n myenv scipy

    在环境中使用 pip

    要在您的环境中、终端窗口或 Anaconda 提示符,运行:

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

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

    我们建议您:

    仅在 conda 之后使用 pip

    1. 使用 conda 安装尽可能多的要求,然后使用 pip。
    2. Pip 应该运行(默认值)。--upgrade-strategy?only-if-needed
    3. 不要将 pip 与参数一起使用,避免所有用户安装。--user

    要检查是否已设置环境变量,请运行(在 Windows 上)或 。echo?$my_varecho?%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

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

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

    设置环境变量

    如果要将环境变量与环境相关联, 您可以使用配置 API。建议将其作为 使用 activate 和 deactivate 脚本,因为这些脚本是 可能不安全的任意代码。

    首先,创建环境并激活它:

    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

    将 conda 和 pip 要求存储在文本文件中

    1. 包要求可以通过参数传递给 conda。--file
    2. Pip 接受带有 或 的 Python 包列表。-r--requirements
    3. Conda env 将基于具有 conda 和 pip 要求。

    如果需要更改,请重新创建环境

    1. 一旦使用了 pip,conda 将不知道这些更改。
    2. 若要安装其他 conda 包,最好重新创建 环境。

    使用 conda 环境进行隔离

    1. 创建一个 conda 环境来隔离 pip 所做的任何更改。
    2. 由于硬链接,环境占用的空间很小。
    3. 应注意避免在根环境中运行 pip。

    保存环境变量

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

    假设您想要一个环境“分析”来存储 登录服务器所需的密钥和 配置文件。以下各节解释了如何编写 在?Windows?和?macOS 或 Linux?上命名的脚本。env_vars

    这种类型的脚本文件可以是 conda 包的一部分,位于 在这种情况下,这些环境变量在 包含该包的环境已激活。

    您可以将这些脚本命名为您喜欢的任何名称。但是,多个 包可能会创建脚本文件,因此请务必使用描述性 其他包未使用的名称。一个流行的选择是 以 的形式为脚本命名,或者在 Windows 上为 .packagename-scriptname.shpackagename-scriptname.bat

    窗户

    1.在 Anaconda Prompt 通过在命令 shell 中运行。%CONDA_PREFIX%

    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
    

    运行 时,环境变量 和 将设置为写入文件的值。 运行 时,这些变量将被擦除。conda?activate?analyticsMY_KEYMY_FILEconda?deactivate

    4.编辑如下:.\etc\conda\deactivate.d\env_vars.bat

    • set MY_KEY=
      set MY_FILE=
      

    macOS 和 Linux

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

    输入该目录并创建这些子目录和 文件:

    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
    

    当您运行 时,环境 变量,并设置为写入的值 文件。当您运行 时,这些变量是 删除。conda?activate?analyticsMY_KEYMY_FILEconda?deactivate

    • 编辑如下:./etc/conda/activate.d/env_vars.sh

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

文章来源:https://blog.csdn.net/weixin_64953014/article/details/135396726
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。