Python
Java前端运维数据库
Python
Python
  • 安装
  • 基础语法
  • 数据类型
    • 列表
    • 元组
    • 集合
    • 字典
  • 数据类型转换
  • 函数
  • 条件判断和循环
  • 模块
  • 多线程
  • 错误和异常
  • 装饰器
  • pip & pipx
Powered by GitBook
On this page
  • pip
  • pipx
  • pip 和 pipx 的区别

pip & pipx

Previous装饰器

Last updated 28 days ago

pip

pip 是 Python 包管理工具,该工具提供了对 Python 包的查找、下载、安装、卸载等功能。软件包也可以在 https://pypi.org 中找到。目前最新的 Python 版本已经预装了 pip。

你可以通过以下命令来判断是否安装:

pip --version # Python2.x 版本
pip3 --version # Python3.x 版本

对方的

多发点饭

pipx

pipx 的出现主要是为了解决在使用 Python 工具时,涉及到工具的安装与管理特别是版本升级过程中可能出现的问题。具体来说,它解决了以下几个关键问题:

  1. 全局安装的冲突:当我们通过 pip 直接进行全局安装一些 Python 实用工具或包时,可能会遇到不同工具依赖的不同版本库之间的冲突。这可能会影响到其他工具或项目的正常运行。

  2. 环境隔离的需求:虽然 virtualenv 提供了创建独立开发环境的能力,但是如果我们想要为每一个单独使用的 Python 工具都创建一个虚拟环境,这个过程会变得繁琐且不易于管理。

  3. 简化安装流程:对于用户而言,每次为了安装或更新某个工具而专门切换到其对应的虚拟环境中是不方便的。理想情况下,用户希望能够以一种更简单、直接的方式管理和使用这些工具,而无需过多地关注背后的环境配置细节。

基于以上问题,pipx 提供了一个优雅的解决方案。它允许用户将 Python 应用程序(如命令行工具)安装到独立的环境中,并且可以轻松地管理这些应用程序的版本更新,同时保持这些应用之间的环境相互隔离,避免了潜在的依赖冲突。最重要的是,pipx 使得这些工具可以直接从命令行调用,不需要用户手动激活特定的虚拟环境,极大地简化了单个工具的安装和更新流程。因此,pipx 使得管理和使用 Python 工具变得更加方便和高效

brew install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
sudo apt update
sudo apt install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument

pip 和 pipx 的区别

特性
pip
pipx

用途

用于安装 Python 库或命令行应用程序,可以安装带 entry points 的库

专门用于安装和管理 Python 命令行工具,每个工具都在隔离的虚拟环境中运行

虚拟环境

不自动创建虚拟环境,需手动使用 venv 或 virtualenv 创建

自动为每个安装的工具创建隔离的虚拟环境,避免依赖冲突

全局命令

安装的包通常是库,需要在 Python 代码证导入使用

安装的命令行工具可以全局使用,无需激活虚拟环境。

依赖管理

依赖可能会影响全局 Python 环境或其他项目

以来管理在隔离环境中,不会影响到全局项目或其他项目

安装命令

使用 pip install package_name 安装包。

使用 pipx install package_name 安装命令行工具

升级和卸载

需手动管理包的升级和卸载

pipx 提供简单的命令来升级所有工具或者卸载特定工具

与 PyPI 集成

直接从 PyPI 安装包

也从 PyPI 安装包,但专注于命令行工具

用户权限

可能需要管理员权限安装全局包

通常不需要管理员权限,可以作为普通用户操作。

临时执行

不支持临时执行环境

支持通过 pipx run 在临时环境中运行应用程序,无需安装。

多版本管理

需要手动管理不同版本的包

自动处理不同版本的工具和它们的依赖,无需手动干预

跨平台支持

支持多个平台,但可能需要不同的包管理器

跨平台支持,包括 Linux、Mac OS 和 Windows

pipx 是一个专门为命令行工具设计的包管理器,它通常在隔离环境中安装每个工具来避免潜在的版本冲突和环境污染。而 pip 是一个更通用的包管理器,适用于安装库和命令行应用程序,但不会自动创建隔离环境。

  • 安装

pip install package-name
  • 卸载

pip uninstall package-name
  • 列表

pip list