pip vs pipx: Python 包管理器,你选择哪个?

内容分享2个月前发布
1 2 0

pip vs pipx: Python 包管理器,你选择哪个?

高效的包管理对于 Python 开发至关重大。pip 和 pipx 是两个最常用的工具。虽然两者都支持安装 Python 包,但它们的设计和用例却大相径庭。本文将探讨这些差异,解释何时使用每种工具,并提供一些实用示例来提升您的工作流程。

pip vs pipx: Python 包管理器,你选择哪个?

什么是 pip?

pip 是 Python 的默认包安装程序。它使开发者能够从 Python 包索引 (PyPI) 或其他存储库(例如 GitHub)安装、升级和管理 Python 包。这种多功能性使 pip 成为安装库和命令行应用程序的通用工具。

主要特点

  • 将包安装到当前的 Python 环境中——可以是全局的,也可以是虚拟环境中的。
  • 需要手动管理虚拟环境以避免依赖项冲突。
  • 常用于项目特定的依赖项。

示例:使用 pip 安装软件包

为了避免依赖项冲突,pip 一般在虚拟环境中使用:

# 先创建一个虚拟环境
python -m venv proj1_env

# 激活虚拟环境
# 在Unix、 MacOS上,用这个命令
source proj1_env/bin/activate
# Windows 上用这个
proj1_envScriptsactivate

# pip安装
pip install requests

在这个例子中,requests库被安装到隔离环境 proj1_env 中,确保它不会干扰其他项目。

pipx 是什么?

pipx 是一款专门用于安装和运行提供命令行界面 (CLI) 的 Python 应用程序的工具。与专注于管理项目依赖项的 pip 不同,pipx 会为每个已安装的应用程序创建独立的环境,确保它们的依赖项之间不会发生冲突。

pip vs pipx: Python 包管理器,你选择哪个?

pipx主要特点

  • 自动为每个已安装的应用程序创建虚拟环境。
  • 通过将已安装的应用程序添加到系统 PATH 中,全局公开这些应用程序。
  • 超级适合在多个项目或系统范围内频繁使用的 Python CLI 工具,确保无缝运行并最大限度地减少维护。

示例:使用 pipx 安装 CLI 工具

先安装pipx:

# 通过 pip 安装 pipx
pip install --user pipx

执行结果:

pip vs pipx: Python 包管理器,你选择哪个?

pip install –user pipx

为pipx配置环境:

# 添加 pipx 到PATH 路径
#  Unix 或 MacOS环境
export PATH="$PATH:$HOME/.local/bin"
#  Windows环境, 添加 %USERPROFILE%.localin 到 PATH 环境变量
# pipx安装  CLI 工具, 例如 black
pipx install black
# 运行black 
black --help

在这里,流行的 Python 代码格式化程序 black 安装在其独立的环境中。这确保了它的依赖项不会干扰其他应用程序的依赖项。

pip 和 pipx 之间的主要区别

用途

pip 是 Python 库和工具的通用安装程序,超级适合安装项目特定的依赖项。而 pipx 专为 Python CLI 应用程序设计,确保每个应用程序相互隔离且可全局访问,且不会发生依赖项冲突。

隔离

pip 依靠手动虚拟环境管理来避免依赖项冲突。相比之下,pipx 会为每个已安装的应用程序自动创建一个单独的虚拟环境,从而简化流程并最大限度地降低风险。

用例

pip 擅长管理特定项目所需的库,例如 Web 框架或数据分析库。pipx 最适合需要全局访问的 CLI 工具,例如 black 或 httpie。

依赖项共享

使用 pip,除非明确隔离,否则依赖项会在环境内共享。而 pipx 确保每个 CLI 应用程序都有自己的依赖项,从而避免任何重叠或冲突。

全局安装

除非通过虚拟环境进行仔细管理,否则使用 pip 进行全局安装可能会导致冲突。相比之下,pipx 保证应用程序可以在全局(global)范围内使用,而不会干扰其他项目或工具。

何时使用 pip

pip 的理想用途:

  • 管理单个项目中的库和依赖项。
  • 通过将其与虚拟环境结合使用来确保可重复性。
  • 安装将在 Python 脚本或应用程序中使用的软件包。
  • 例如,如果您正在使用 Django 开发 Web 应用程序,则可以在特定于该项目的虚拟环境中使用 pip 安装 Django 和其他依赖项。

何时使用 pipx

pipx 最适合:

  • 安装独立的 Python CLI 工具,例如 black、httpie 或 cookiecutter。
  • 运行临时 Python 应用程序而不污染全局 Python 环境。
  • 例如,如果您常常使用像 httpie 这样的 CLI 应用程序来测试 API,则通过 pipx 安装它可以确保其依赖项不会与其他工具或项目冲突。

结论

pip 和 pipx 都是 Python 开发人员不可或缺的工具,但它们的用例各不一样。

pip 擅长管理项目特定的依赖项,而 pipx 则更擅长处理独立的 CLI 工具。

了解何时使用每个工具将有助于打造更高效、更易于维护的 Python 工作流程。

通过掌握这些工具, 可以简化开发流程,最大限度地减少冲突,并为您的项目和工具维护干净、有序的环境。

© 版权声明

相关文章

2 条评论

  • 头像
    Serein_竹烟槐雨 投稿者

    下回试试

    无记录
    回复
  • 头像
    素质教育漏网之 读者

    选uv

    无记录
    回复