管理包#

注意

本页介绍的命令有许多选项可用。有关详细信息,请参阅 commands

搜索包#

使用终端执行以下步骤。

要查看特定包(例如 SciPy)是否可供安装

conda search scipy

要查看特定包(例如 SciPy)是否可供从 Anaconda.org 安装

conda search --override-channels --channel defaults scipy

要查看特定包(例如 iminuit)是否存在于特定通道(例如 http://conda.anaconda.org/mutirri)中,以及是否可供安装

conda search --override-channels --channel http://conda.anaconda.org/mutirri iminuit

安装包#

使用终端执行以下步骤。

要将特定包(例如 SciPy)安装到现有环境“myenv”中

conda install --name myenv scipy

如果您没有指定环境名称(在本例中,通过 --name myenv 完成),则该包会安装到当前环境中

conda install scipy

要安装特定版本的包(例如 SciPy)

conda install scipy=0.15.0

要一次安装多个包(例如 SciPy 和 cURL)

conda install scipy curl

注意

最好一次安装所有包,以便所有依赖项同时安装。

要一次安装多个包并指定包的版本

conda install scipy=0.15.0 curl=7.26.0

要为特定 Python 版本安装包

conda install scipy=0.15.0 curl=7.26.0 -n py34_env

如果您想使用特定 Python 版本,最好使用具有该版本的環境。有关更多信息,请参阅 Troubleshooting

安装类似的包#

安装具有类似文件名且用于类似目的的包可能会返回意外的结果。最后安装的包可能会决定结果,这可能是不可取的。如果两个包具有不同的名称,或者您正在构建包的变体并需要将其他软件排列在堆栈中,我们建议使用 Mutex 元包

从 Anaconda.org 安装包#

无法使用 conda install 获得的包可以从 Anaconda.org 获得,Anaconda.org 是一种用于公共和私有包存储库的包管理服务。Anaconda.org 是 Anaconda 的产品,就像 Anaconda 和 Miniconda 一样。

要从 Anaconda.org 安装包

  1. 在浏览器中,转到 http://anaconda.org

  2. 要查找名为 bottleneck 的包,请在名为 Search Packages 的左上角框中键入 bottleneck

  3. 找到您想要的包并点击它进入详细信息页面。

    详细信息页面显示通道的名称。在本例中,它是“pandas”通道。

  4. 现在您知道了通道名称,请使用 conda install 命令安装该包。在您的终端窗口中,运行

    conda install -c pandas bottleneck
    

    此命令告诉 conda 从 Anaconda.org 上的 pandas 通道安装 bottleneck 包。

  5. 要检查该包是否已安装,在您的终端窗口中,运行

    conda list
    

    将出现一个包列表,其中包括 bottleneck。

注意

有关从多个通道安装包的信息,请参阅 Managing channels

安装非 conda 包#

如果无法从 conda 或 Anaconda.org 获得包,您可能可以通过 conda-forge 或使用其他包管理器(如 pip)找到并安装该包。

Pip 包不具备 conda 包的所有功能,我们建议首先尝试使用 conda 安装任何包。如果无法通过 conda 获得该包,请尝试使用 conda-forge 查找并安装它。

如果您仍然无法安装该包,您可以尝试使用 pip 安装它。pip 和 conda 包之间的差异会导致某些不可避免的兼容性限制,但 conda 努力尽可能与 pip 兼容。

注意

Anaconda 和 Miniconda 中都包含 pip 和 conda,因此您无需单独安装它们。

Conda 环境取代了 virtualenv,因此在使用 pip 之前无需激活 virtualenv。

可以在 conda 环境之外或 conda 环境内部安装 pip。

要获得 conda 集成的优势,请确保在当前活动的 conda 环境中安装 pip,然后使用该 pip 实例安装软件包。命令 conda list 显示以这种方式安装的软件包,并带有显示它们是用 pip 安装的标签。

在环境中使用 pip 中所述,可以使用命令 conda install pip 在当前 conda 环境中安装 pip。

如果在当前 conda 环境内部和外部都安装了 pip 实例,则使用在当前 conda 环境内部安装的 pip 实例。

要安装非 conda 软件包

  1. 激活您要放置程序的环境

    • 在终端窗口中,运行 conda activate myenv

  2. 要使用 pip 安装程序(如 See),在终端窗口中,运行

    pip install see
    
  3. 要验证软件包是否已安装,在终端窗口中,运行

    conda list
    

    如果未显示软件包,请按照 在环境中使用 pip 中的说明安装 pip,然后再次尝试这些命令。

安装商业软件包#

安装商业软件包(如 IOPro)与安装任何其他软件包相同。在终端窗口中,运行

conda install --name myenv iopro

此命令安装 Anaconda 商业软件包 IOPro 的免费试用版,该软件包可以加快您的 Python 处理速度。除了学术用途外,此免费试用版在 30 天后到期。

查看已安装软件包的列表#

使用终端执行以下步骤。

要列出活动环境中的所有软件包

conda list

要列出停用环境中的所有软件包

conda list -n myenv

列出软件包依赖项#

要查找环境中哪些软件包依赖于特定软件包,没有一个特定的 conda 命令。它需要一系列步骤

  1. 列出特定软件包运行所需的依赖项:conda search package_name --info

  2. 找到安装的软件包缓存目录:conda info

  3. 查找软件包依赖项。默认情况下,Anaconda/Miniconda 将软件包存储在 ~/anaconda/pkgs/ 中(或在 macOS Catalina 上的 ~/opt/pkgs/ 中)。每个软件包都有一个 index.json 文件,其中列出了软件包的依赖项。该文件位于 ~anaconda/pkgs/package_name/info/index.json 中。

  4. 现在您可以找到哪些软件包依赖于特定软件包。使用 grep 搜索所有 index.json 文件,如下所示:grep package_name ~/anaconda/pkgs/*/info/index.json

结果将是包含 <package_name> 的任何内容的完整软件包路径和版本。

示例:grep numpy ~/anaconda3/pkgs/*/info/index.json

上述命令的输出

/Users/testuser/anaconda3/pkgs/anaconda-4.3.0-np111py36_0/info/index.json: numpy 1.11.3 py36_0
/Users/testuser/anaconda3/pkgs/anaconda-4.3.0-np111py36_0/info/index.json: numpydoc 0.6.0 py36_0
/Users/testuser/anaconda3/pkgs/anaconda-4.3.0-np111py36_0/info/index.json: numpy 1.11.3 py36_0

请注意,这也返回了“numpydoc”,因为它包含字符串“numpy”。要获得更具体的结果集,您可以添加 < 和 >。

更新软件包#

使用 conda update 命令检查是否有新的更新可用。如果 conda 告诉您有更新可用,那么您可以选择是否安装它。

使用终端执行以下步骤。

  • 要更新特定软件包

    conda update biopython
    
  • 要更新 Python

    conda update python
    
  • 要更新 conda 本身

    conda update conda
    

注意

Conda 更新到其系列中的最高版本,因此 Python 3.8 更新到 3.x 系列中可用的最高版本。

要更新 Anaconda 元软件包

conda update conda
conda update anaconda

无论您要更新哪个软件包,conda 都会比较版本,然后报告可安装的版本。如果没有可用的更新,conda 会报告“所有请求的软件包都已安装”。

如果您的软件包有更新的版本可用,并且您希望更新它,请键入 y 以更新

Proceed ([y]/n)? y

阻止软件包更新(锁定)#

在环境中锁定软件包规范可以阻止 pinned 文件中列出的软件包更新。

在环境的 conda-meta 目录中,添加一个名为 pinned 的文件,其中包含您不想更新的软件包列表。

示例:以下文件强制 NumPy 保持在 1.7 系列中,即以 1.7 开头的任何版本。这也强制 SciPy 保持在版本 0.14.2。

numpy 1.7.*
scipy ==0.14.2

使用此 pinned 文件,conda update numpy 将 NumPy 保持在 1.7.1,而 conda install scipy=0.15.0 会导致错误。

使用 --no-pin 标志覆盖软件包的更新限制。在终端中,运行

conda update numpy --no-pin

由于 pinned 规范包含在每个 conda 安装中,因此后续的 conda update 命令(不带 --no-pin)会将 NumPy 还原到 1.7 系列。

将默认软件包自动添加到新环境#

要自动将默认软件包添加到您创建的每个新环境中

  1. 打开一个终端窗口并运行:conda config --add create_default_packages PACKAGENAME1 PACKAGENAME2

  2. 现在,您可以创建新环境,并且默认软件包将安装在所有环境中。

您也可以 编辑 .condarc 文件,其中包含默认创建的软件包列表。

您可以在命令提示符下使用 --no-default-packages 标志覆盖此选项。

删除软件包#

使用终端执行以下步骤。

  • 要从 myenv 等环境中删除 SciPy 等软件包

    conda remove -n myenv scipy
    
  • 要从当前环境中删除 SciPy 等软件包

    conda remove scipy
    
  • 要一次删除多个软件包(如 SciPy 和 cURL)

    conda remove scipy curl
    
  • 要确认软件包已删除

    conda list