安装 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

Package distribution format

Binaries

Wheels or source

Requires compilers?

No

Yes

Package types

Any (Python, R, C++, etc.)

Python only

Environment creation?

Yes, built in

No, requires virtualenv or venv

Dependency resolution?

Yes

No

Package sources

Anaconda repo, 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.ymlfile,从包含该文件的目录运行以下命令:

conda env create --file environment.yml

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

使用environment.yml文件#

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

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

注意

--prune选项从环境中删除所有孤立的软件包。如果包同时满足以下两个条件,则认为该包是孤立的:

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

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

pip install在 conda 环境中#

由于 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 软件包,请创建一个新环境,然后按照上述过程重新安装软件包。

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