有关pip与conda的介绍

Conda vs. Pip vs. Virtualenv 命令对比

任务 Conda 命令 Pip 命令 Virtualenv 命令
安装包 conda install $PACKAGE_NAME pip install $PACKAGE_NAME X
更新包 conda update --name $ENVIRONMENT_NAME $PACKAGE_NAME pip install --upgrade $PACKAGE_NAME X
更新包管理器 conda update conda Linux/macOS: pip install -U pip Win: python -m pip install -U pip X
卸载包 conda remove --name $ENVIRONMENT_NAME $PACKAGE_NAME pip uninstall $PACKAGE_NAME X
创建环境 conda create --name $ENVIRONMENT_NAME python X cd $ENV_BASE_DIR; virtualenv $ENVIRONMENT_NAME
激活环境 conda activate $ENVIRONMENT_NAME* X source $ENV_BASE_DIR/$ENVIRONMENT_NAME/bin/activate
停用环境 conda deactivate X deactivate
卸载环境 conda env remove --name 环境名称
搜索可用包 conda search $SEARCH_TERM pip search $SEARCH_TERM X
从指定来源安装包 conda install --channel $URL $PACKAGE_NAME pip install --index-url $URL $PACKAGE_NAME X
列出已安装的包 conda list --name $ENVIRONMENT_NAME pip list X
创建依赖文件 conda list --export pip freeze X
列出所有环境 conda info --envs X 安装 virtualenv wrapper 后使用 lsvirtualenv
安装其他包管理器 conda install pip pip install conda X
安装 Python conda install python=x.x X X
更新 Python conda update python* X X

备注:

  • conda activate 只适用于 Conda 4.6 及更高版本。在 Conda 4.6 之前的版本中,可以使用以下命令:
    • Windows: activate
    • Linux 和 macOS: source activate
  • conda update python 会更新到该系列的最新版本,因此 Python 2.x 会更新到最新的 2.x 版本,Python 3.x 会更新到最新的 3.x 版本。

conda

conda 是一个开源的包管理器和环境管理器,最初由 Anaconda 提供,支持Python 以及其他语言(如 R、Ruby、Lua)的包管理。conda 不仅能安装和管理 Python 包,还能创建独立的虚拟环境,并安装其他语言的包。

Conda 命令

  • conda activate:激活指定的 Conda 环境,使当前终端会话使用该环境的 Python 和库。
  • conda clean:清理 Conda 缓存,删除不再需要的包和索引,释放磁盘空间。
  • conda compare:比较不同环境中的包或包版本。
  • conda config:配置 Conda 的行为,例如设置源、代理等。
  • conda create:创建一个新的 Conda 环境,并指定环境中的 Python 版本及其他包。
  • conda deactivate:停用当前激活的 Conda 环境。
  • conda doctor:检查 Conda 环境并解决常见问题。
  • conda env:管理 Conda 环境,例如创建、导出环境等。
  • conda info:显示 Conda 环境和配置信息,包括已安装的环境列表。
  • conda init:初始化 Conda,使得 Conda 能够在终端中自动激活和管理环境。
  • conda install:安装指定的包及其依赖,支持从 Conda 仓库或指定的源安装。
  • conda list:列出当前环境中已安装的所有包及其版本。
  • conda notices:显示 Conda 系统的通知信息。
  • conda package:管理 Conda 包,例如安装、更新和删除。
  • conda repoquery:查询 Conda 仓库中的包信息。
  • conda remove:卸载指定的包。
  • conda rename:重命名 Conda 环境。
  • conda run:在指定的环境中运行命令。
  • conda search:搜索 Conda 仓库中的包。
  • conda update:更新指定环境中的包或 Conda 本身。

pip

pipPython 的官方包管理工具,用于安装和管理 Python 包。它从 Python 包索引(PyPI)上下载并安装包

pip venv

venv 是 Python 内建的一个用于创建独立虚拟环境的工具。每个虚拟环境有自己的 Python 解释器和库集合,确保包之间的依赖不冲突。

区别

1. 总体

  • Pip

    • 用途:Pip 是 Python Packaging Authority 推荐的工具,用于从 Python 包索引(PyPI)安装 Python 软件包。
    • 包类型 :仅限于 Python 包,安装的包通常是 .whl(wheel)格式,或者是源代码格式(需要编译)。
    • 依赖管理:Pip 安装包时,不会检查环境中的所有包的依赖关系。它会按顺序递归安装依赖,可能会导致依赖冲突或破坏环境的稳定性。
  • Conda

    • 用途:Conda 是一个跨平台的包和环境管理工具,可以从 Anaconda 仓库或 Anaconda Cloud 安装包,支持安装和管理包含 C/C++ 库、R 包等在内的多种软件。
    • 包类型:支持任何类型的软件包,不仅仅是 Python 包,还包括 C、C++、R 等。
    • 依赖管理:Conda 使用 SAT 解算器来确保环境中所有包的依赖关系得到满足,因此可以避免安装包时出现的版本冲突问题。

2. 环境管理

  • Pip :没有内建的环境管理功能,通常依赖 virtualenvvenv 来创建虚拟环境来隔离不同的项目和包依赖。
  • Conda:提供内建的环境管理功能,可以轻松创建和管理不同版本的 Python 及其包,适用于数据科学等领域,不同工具可能需要不同版本的 Python 或库。

3. 安装包时的依赖检查

  • Pip:安装包时没有自动检查依赖,可能会导致环境破损,尤其是在包间依赖关系复杂时。
  • Conda:使用 SAT 解算器自动检查依赖,确保安装的所有包的依赖关系都得到满足,减少环境破损的风险。

有时某些包只在 PyPI 上提供,而不在 Conda 仓库中。此时,使用 conda 安装可用的包,然后使用 pip 安装 PyPI 上的包。尽量优先使用 conda 安装包,尤其是那些包含底层依赖的包。只有在 conda 中找不到所需包时,再使用 pip 来安装 PyPI 上的包。Anaconda 仓库中提供了超过 1500 个包,包括最流行的数据科学、机器学习和 AI 框架。通过 conda 可以安装这些包,以及来自 conda-forge 和 bioconda 等频道的数千个额外包,所有这些都可以通过 conda 安装。尽管这些包的数量庞大,但与 PyPI 上超过 150,000 个包相比,它的数量仍然较少。偶尔会需要某些在 conda 中没有的包,但可以在 PyPI 上找到,并且可以通过 pip 安装。

特性 Conda Pip
支持的包类型 任何类型的软件包(Python、C、C++、R等) 仅支持 Python 包
依赖管理 内建依赖检查,避免冲突 没有内建依赖检查,可能导致环境破损
环境管理 内建环境管理功能 依赖 virtualenvvenv 来创建环境
安装源 Anaconda 仓库与 Cloud PyPI
是否需要编译器 不需要 需要,特别是从源代码安装时
包管理方式 包是预编译的二进制文件 包是源代码或 .whl 格式
相关推荐
hbwhmama18 分钟前
python高级变量XIII
python
费弗里1 小时前
Python全栈应用开发利器Dash 3.x新版本介绍(3)
python·dash
dme.1 小时前
Javascript之DOM操作
开发语言·javascript·爬虫·python·ecmascript
加油吧zkf1 小时前
AI大模型如何重塑软件开发流程?——结合目标检测的深度实践与代码示例
开发语言·图像处理·人工智能·python·yolo
t_hj1 小时前
python规划
python
tan77º1 小时前
【Linux网络编程】Socket - UDP
linux·服务器·网络·c++·udp
czhc11400756632 小时前
Linux 76 rsync
linux·运维·python
悠悠小茉莉2 小时前
Win11 安装 Visual Studio(保姆教程 - 更新至2025.07)
c++·ide·vscode·python·visualstudio·visual studio
m0_625686552 小时前
day53
python
Paper_Love3 小时前
x86-64_windows交叉编译arm_linux程序
arm开发·windows