安装 pip 包#
PyPI 仓库中的大多数常用包都可以在Anaconda 的公共仓库、Anaconda.org 或 conda-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
从 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 环境,请完成以下步骤
激活您的目标环境。
首先运行以下命令安装 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 命令。
要安装 PyPI 包,请运行以下命令
# Replace <PACKAGE> with the name of the PyPI package you need to install pip install <PACKAGE>
如果您需要在安装 pip 包后安装其他 conda 包,请创建一个新环境,并按照上述流程重新安装这些包。
有关更多信息,请参阅官方 conda 文档中关于将 pip 与 conda 结合使用的内容。