安装 pip 包#

PyPI 仓库中的大多数常用包都可以在Anaconda 的公共仓库Anaconda.orgconda-forge 中找到。但是,如果某个包或特定版本无法通过 conda 频道获得,您可能需要使用 pip。

使用 pip 安装包会修改您的 conda 环境,但 conda 并不知道这些修改。因此,当 conda 稍后尝试修改环境时,conda 跟踪的包和未跟踪的 pip 包之间很可能出现依赖冲突,这可能会导致环境损坏。

了解 conda 和 pip

虽然 conda 和 pip 的某些功能重叠(即安装 Python 包的能力),但它们的设计目的和使用目的不同。Pip 是 Python Packaging Authority 推荐的用于从 Python 包索引 PyPI 安装包的工具。另一方面,Conda 是一个跨平台包和环境管理器,用于安装和管理来自 Anaconda 公共仓库以及 Anaconda.org 的包。

conda 和 pip 之间的其他主要区别包括

conda

pip

包分发格式

二进制文件

Wheel 文件或源代码

需要编译器吗?

包类型

任何类型 (Python, R, C++ 等)

仅限 Python

环境创建?

是,内置

否,需要 virtualenv 或 venv

依赖项解析?

包来源

Anaconda 仓库, Anaconda.org

PyPI

在 conda 环境中使用 pip 时,请遵循本页面的指导,以避免依赖冲突和环境损坏。

手动创建 environment.yml 文件#

为了创建一个包含 pip 包的稳定环境,Anaconda 建议编写一个 environment.yml 文件,然后从该文件构建环境。虽然此方法设置起来比较耗时,但它具有以下几个优点

  • 控制包构建顺序、版本和频道

  • 简单的环境更新

  • 通过 .yml 文件实现更好的可重现性和可共享性

编写 environment.yml 文件#

以下是一个 environment.yml 文件的示例。在编写文件时,请务必最后添加 pip 及其依赖项,因为 conda 会按照列出的顺序构建环境。

name: myenv # This will become the name of your environment
dependencies: # The list of packages to include in your environment
    - python=3.12 # You can specify versions
    - bokeh>=2.4.2
    - flask
    - pip # Install pip in your environment
    - pip: # Include pip dependencies last
        - Flask-Testing

官方 conda 文档包含有关手动创建环境文件以及包匹配规范的更多信息。

environment.yml 文件创建环境#

要从 environment.yml 文件创建环境,请从包含该文件的目录运行以下命令

conda env create --file environment.yml

有关从 .yml 文件创建环境的详细信息,请参阅官方 conda 文档。

使用 environment.yml 文件更新环境#

如果您需要向环境中添加包、更改包版本或删除包,请更新 environment.yml 文件,然后通过从包含该文件的目录运行以下命令来重建环境

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

注意

--prune 选项会从环境中删除任何孤立的包。如果一个包满足以下两个条件,则被认为是孤立的

  • 它不是用户显式安装的。

  • 它不是任何当前已安装包的依赖项。

在 conda 环境中使用 pip install#

由于 conda 不了解 pip 所做的环境更新,因此在构建环境时,使用 pip 必须是最后一步操作。

注意

请勿在您的基础环境中运行 pip install。创建一个单独的 conda 环境以隔离更改。

要在命令行构建包含 PyPI 包的 conda 环境,请完成以下步骤

  1. 激活您的目标环境。

  2. 首先运行以下命令安装 conda 包

    # Replace <PACKAGE> with the conda packages you need to install, separated by a space
    # List the pip package last
    conda install <PACKAGE> <PACKAGE> pip
    

    注意

    Anaconda 和 Miniconda 都包含 pip,但您必须在工作环境中安装它才能执行 pip 命令。

  3. 要安装 PyPI 包,请运行以下命令

    # Replace <PACKAGE> with the name of the PyPI package you need to install
    pip install <PACKAGE>
    

如果您需要在安装 pip 包后安装其他 conda 包,请创建一个新环境,并按照上述流程重新安装这些包。

有关更多信息,请参阅官方 conda 文档中关于将 pip 与 conda 结合使用的内容。