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,来自源的另一个 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:或
activate
deactivate
Linux 和 macOS:或
source?activate
source?deactivate
提示
默认情况下,环境安装在 conda 目录中的目录中。有关指定的信息,请参阅指定环境或运行的位置?一条不同的道路。
envs
conda?create?--help
使用终端或 Anaconda 提示符执行以下步骤:
要创建环境,请执行以下操作:
conda create --name myenv
注意
替换为环境名称。
myenv
当 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?create
conda?create?--help
使用终端或 Anaconda 提示符执行以下步骤:
从文件创建环境:environment.yml
conda env create -f environment.yml
该文件的第一行设置新环境的 名字。有关详细信息,请参阅手动创建环境文件。yml
激活新环境:conda?activate?myenv
验证新环境是否已正确安装:
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
Conda 无法再找到带有该标志的环境。 您通常需要将标志与 environment 的完整路径来查找环境。--name
--prefix
在创建 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
注意
替换为新环境的名称。 替换为现有环境的名称 您要复制。
myclone
myenv
要验证副本是否已制作,请执行以下操作:
conda info --envs
在显示的环境列表中,您应该会看到 源环境和新副本。
您可以使用显式规范文件来构建相同的 conda 环境位于同一操作系统平台上,或者 在同一台机器或另一台机器上。
使用终端或 Anaconda 提示符执行以下步骤:
运行以生成规范列表,例如: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
将此规范列表创建为当前工作中的文件 目录中,运行:
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 4.4 。Conda 4.6 添加了广泛的初始化 支持,以便 Conda 更快、更少地工作 种类繁多的 shell(bash、zsh、csh、fish、xonsh 等)。 现在,这些 shell 可以使用该命令。 消除修改 PATH 的需要使 conda 对 系统上的其他软件。有关更多信息,请阅读 的输出。conda?activate?myenv
conda?activate
conda?init?--help
使用时,一个设置可能对您有用:conda?init
auto_activate_base: bool
此设置控制 conda 是否激活您的基地 环境。无论哪种方式,您都可以使用该命令,但无需激活环境, 环境中的其他程序在以下情况下都不可用 环境是用 激活的。人 有时选择此设置来加快其外壳所需的时间 启动或阻止 Conda 安装的软件自动启动 隐藏他们的其他软件。conda
conda?activate?base
默认情况下,将停用当前环境 在激活新环境之前,并在以下情况下重新激活它 停用新环境。有时你可能想离开 当前环境 PATH 条目就位,以便您可以继续 从第一个环境轻松访问命令行程序。 这在常见的命令行实用程序中最常见 安装在基本环境中。保留当前环境 在 PATH 中,您可以使用以下命令激活新环境:conda?activate
conda activate --stack myenv
如果您希望在从最外层环境开始时始终堆叠, 这通常是基本环境,您可以设置配置选项:auto_stack
conda config --set auto_stack 1
您可以指定一个更大的数字来进行更深层次的自动堆叠, 但不建议这样做,因为更有可能进行更深层次的堆叠 导致混淆。
如果您不想激活您的环境,并且想要 Python 进行 DLL 加载验证,然后按照故障排除说明进行操作。
警告
如果您选择不激活您的环境,则 加载和设置要激活的环境变量 脚本不会发生。我们只支持激活。
若要停用环境,请键入:conda?deactivate
Conda 从 您的系统命令。
注意
若要简单地返回到基本环境,最好在未指定环境的情况下调用,而不是尝试停用。如果 从基础环境运行,可能会丢失 完全能够运行 conda。别担心,这是这个 shell 的本地 - 你可以 开始一个新的。但是,如果环境是使用(或自动堆叠)激活的,则最好使用 .
conda?activate
conda?deactivate
--stack
conda?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
要在您的环境中、终端窗口或 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
--upgrade-strategy?only-if-needed
--user
要检查是否已设置环境变量,请运行(在 Windows 上)或 。echo?$my_var
echo?%my_var%
conda?env?config?vars?list
停用环境时,可以使用这些相同的命令来查看 环境变量消失。
您可以使用 和 标志指定要影响的环境。该标志允许您命名环境,并允许您指定环境的路径。-n
-p
-n
-p
要取消设置环境变量,请运行 。conda?env?config?vars?unset?my_var?-n?test-env
停用环境时,可以看到环境变量通过重新运行或显示变量名称而消失 不再存在。echo?my_var
conda?env?config?vars?list
使用设置的环境变量将保留在 的输出中。此外,您可以在 environment.yml 文件中声明环境变量 如下所示:conda?env?config?vars
conda?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 要求存储在文本文件中
--file
-r
--requirements
如果需要更改,请重新创建环境
使用 conda 环境进行隔离
Conda 环境可以包含已保存的环境变量。
假设您想要一个环境“分析”来存储 登录服务器所需的密钥和 配置文件。以下各节解释了如何编写 在?Windows?和?macOS 或 Linux?上命名的脚本。env_vars
这种类型的脚本文件可以是 conda 包的一部分,位于 在这种情况下,这些环境变量在 包含该包的环境已激活。
您可以将这些脚本命名为您喜欢的任何名称。但是,多个 包可能会创建脚本文件,因此请务必使用描述性 其他包未使用的名称。一个流行的选择是 以 的形式为脚本命名,或者在 Windows 上为 .packagename-scriptname.sh
packagename-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?analytics
MY_KEY
MY_FILE
conda?deactivate
4.编辑如下:.\etc\conda\deactivate.d\env_vars.bat
set MY_KEY=
set MY_FILE=
通过在终端窗口中运行,在终端窗口中找到 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?analytics
MY_KEY
MY_FILE
conda?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