『Python学习笔记』pip和pipx有什么区别?具体示例解释

|-----------------------------------|
| 『Python学习笔记』pip和pipx有什么区别?具体示例解释。 |

文章目录

  • [一. pip和pipx有什么区别?具体示例解释](#一. pip和pipx有什么区别?具体示例解释)
    • [1. pip: 通用的 Python 包管理器](#1. pip: 通用的 Python 包管理器)
    • [2. pipx: 专门用于隔离安装命令行工具](#2. pipx: 专门用于隔离安装命令行工具)
    • [3. 总结对比:](#3. 总结对比:)
  • [二. 解释pipx install poetry](#二. 解释pipx install poetry)
      • 详细解释
        • [1. pipx 的作用](#1. pipx 的作用)
        • [2. Poetry 是什么?](#2. Poetry 是什么?)
        • [3. 命令执行过程](#3. 命令执行过程)
        • [4. 使用示例](#4. 使用示例)
        • [5. 为什么用 `pipx` 安装 `poetry`?](#5. 为什么用 pipx 安装 poetry?)
        • [6. 常见问题与解决方法](#6. 常见问题与解决方法)
      • 总结
  • [三. 那ubuntu该如何安装pipx呢?](#三. 那ubuntu该如何安装pipx呢?)
      • [1. 安装 Python3 和 pip](#1. 安装 Python3 和 pip)
      • [2. 安装 pipx](#2. 安装 pipx)
      • [3. 配置环境变量](#3. 配置环境变量)
      • [4. 验证安装](#4. 验证安装)
      • [5. 使用 pipx 安装工具](#5. 使用 pipx 安装工具)
      • [6. 卸载 pipx(可选)](#6. 卸载 pipx(可选))
      • 总结:
  • [四. 参考文献](#四. 参考文献)

一. pip和pipx有什么区别?具体示例解释

pippipx 都是用于安装和管理 Python 包的工具,但它们在用途和功能上有明显的区别。以下是它们的主要差异,以及具体示例来帮助说明它们的不同。

1. pip: 通用的 Python 包管理器

pip 是最常用的 Python 包管理工具,用来安装、更新和卸载 Python 包 。它安装的包通常是库或模块,并且会安装在当前的 Python 环境中(如全局环境或虚拟环境中)。

  • 用途: 安装并管理 Python 包,这些包可以被你的 Python 项目直接引用和使用。
  • 安装位置: 安装在全局环境或虚拟环境中。
  • 使用场景 : 适合项目依赖的库、模块等,例如 requests, numpy

示例

假设你想使用 pip 安装 requests 库:

bash 复制代码
pip install requests

然后,在你的 Python 脚本中可以直接使用该库:

python 复制代码
import requests
response = requests.get('https://example.com')
print(response.status_code)

此时,requests 会安装在当前的 Python 环境中。如果这个环境是全局环境,那么其他项目也会访问到这个库。

2. pipx: 专门用于隔离安装命令行工具

pipx 是一个专门用来安装、管理独立的 Python 命令行工具的工具。pipx 会在独立的隔离环境中安装这些工具,从而避免它们干扰其他项目的依赖。它主要用于安装那些可以全局使用的 Python 命令行工具,比如 blackhttpie 等。

  • 用途 : 安装和管理 Python 命令行工具,而不会污染全局 Python 包环境。
  • 安装位置 : pipx 会为每个工具创建一个独立的虚拟环境。
  • 使用场景: 适合那些作为命令行工具使用的 Python 包。

示例:

假设你想使用 pipx 安装 httpie 命令行工具:

bash 复制代码
pipx install httpie

这时,pipx 会为 httpie 创建一个独立的虚拟环境,且你可以全局使用 httpie 命令,而不必担心它与其他项目的依赖冲突。

使用 httpie 命令进行 HTTP 请求:

bash 复制代码
http GET https://example.com
  • 如果你不再需要 httpie,可以通过以下命令轻松卸载:
bash 复制代码
pipx uninstall httpie

3. 总结对比:

特性 pip pipx
主要用途 安装项目依赖库,如 requests, numpy 安装并管理全局命令行工具,如 black, httpie
安装方式 安装在当前 Python 环境(全局或虚拟环境) 为每个工具创建隔离的虚拟环境
适用场景 用于库或模块的安装 用于命令行工具的全局安装和管理
依赖冲突可能性 高,如果不使用虚拟环境 低,每个工具都有隔离环境

在具体应用中 pip 适合安装你项目中使用的库,而 pipx 则更适合安装那些你希望全局可用且不希望与其他包产生依赖冲突的命令行工具。

二. 解释pipx install poetry

运行 pipx install poetry 这条命令时,pipx 会将 Python 项目管理工具 Poetry 安装为一个全局的命令行工具,并且为它创建一个独立的虚拟环境,从而与其他 Python 工具或项目的依赖隔离开来。

详细解释

1. pipx 的作用

pipx 的作用是为每个独立的 Python 命令行工具创建一个虚拟环境,避免这些工具之间的依赖冲突。当你使用 pipx install poetry 时,pipx 会自动:

  • 下载 poetry 包。
  • 创建一个专门的虚拟环境来运行 poetry,不会污染全局的 Python 环境。
  • 在你的系统 PATH 中注册 poetry,使得你可以在命令行中随时使用 poetry 命令。
2. Poetry 是什么?

Poetry 是一个 Python 项目管理工具,用于简化依赖管理和包的发布。它的功能类似于 pipvirtualenv 的组合,同时提供了更强大的依赖解析、项目环境管理以及项目发布功能。

  • 它能够管理项目的依赖(包括开发依赖和生产依赖),并且生成类似 requirements.txtpyproject.toml 文件。
  • 它能自动创建虚拟环境以隔离项目依赖。
  • 它能够发布 Python 包到 PyPI。
3. 命令执行过程

当你运行 pipx install poetrypipx 会执行以下几个步骤:

  1. 下载 Poetry

    • pipx 会使用 pip 来从 PyPI 下载 poetry 的最新版本。
  2. 创建虚拟环境

    • pipx 会为 poetry 创建一个独立的虚拟环境,这个虚拟环境专门用于运行 poetry,确保它不会与系统中其他工具或项目产生依赖冲突。
  3. 全局安装 Poetry

    • pipxpoetry 的执行文件链接到你的系统路径(PATH)中,使得你可以在终端中直接运行 poetry 命令,而不需要激活特定的虚拟环境。
  4. 验证安装

    • 安装完成后,你可以通过 poetry --version 来验证安装是否成功。
4. 使用示例

安装完 poetry 后,你可以开始使用它来管理 Python 项目。例如,创建一个新的 Python 项目:

bash 复制代码
poetry new my_project

这将创建一个名为 my_project 的目录,并生成包含基本项目结构的文件。

如果你想在现有项目中初始化 Poetry:

bash 复制代码
cd my_existing_project
poetry init

该命令会引导你创建一个 pyproject.toml 文件,用于管理该项目的依赖和配置。

要安装依赖,你可以使用:

bash 复制代码
poetry add requests

这会把 requests 库添加到项目依赖中,并更新 pyproject.tomlpoetry.lock 文件。

5. 为什么用 pipx 安装 poetry
  • 依赖隔离 : pipx 自动为 poetry 创建虚拟环境,不会和其他全局安装的 Python 包发生冲突。例如,如果你用 pip 安装 poetry,它会被安装到全局环境中,可能会影响其他全局 Python 包的依赖,而用 pipx 则避免了这种问题。
  • 轻松管理工具 : 使用 pipx 可以轻松管理和卸载命令行工具。你可以通过 pipx uninstall poetry 完全卸载 poetry 和它的虚拟环境,而不影响系统的其他部分。
6. 常见问题与解决方法
  • 路径问题 : 如果安装完成后无法直接使用 poetry,可能是因为 pipx 安装的路径未加入到系统 PATH 中。你可以手动将 pipx 的路径添加到你的 PATH 中,通常是在 ~/.local/bin 目录。

    可以通过以下命令查看 pipx 的安装路径:

    bash 复制代码
    pipx list
  • 更新 Poetry : 如果你想更新 poetry,可以运行以下命令:

    bash 复制代码
    pipx upgrade poetry

总结

使用 pipx install poetry 可以方便、干净地安装和管理 poetry 命令行工具,并且通过独立的虚拟环境隔离依赖,确保项目环境的稳定性。

三. 那ubuntu该如何安装pipx呢?

在 Ubuntu 上安装 pipx 主要通过 Python 包管理器 pip 来完成。以下是详细的步骤说明:

1. 安装 Python3 和 pip

在 Ubuntu 中,默认安装了 Python 3。如果未安装,首先需要安装 Python 3 和 pip,以便后续安装 pipx

  • 更新系统包管理器:

    bash 复制代码
    sudo apt update
  • 安装 Python 3 和 pip(如果尚未安装):

    bash 复制代码
    sudo apt install python3 python3-pip
  • 确认安装的 Python 和 pip 版本:

    bash 复制代码
    python3 --version
    pip3 --version

2. 安装 pipx

Ubuntu 上安装 pipx 可以使用 pip 命令:

bash 复制代码
pip3 install --user pipx

3. 配置环境变量

pipx 会默认安装在用户的本地路径下(通常在 ~/.local/bin 目录),因此需要确保该目录已经加入到系统的 PATH 环境变量中。你可以通过以下步骤来配置:

  • 打开或编辑 .bashrc(或者 .zshrc,取决于你使用的 Shell)文件:

    bash 复制代码
    nano ~/.bashrc
  • 在文件末尾添加以下行,将 ~/.local/bin 添加到 PATH

    bash 复制代码
    export PATH="$PATH:~/.local/bin"
  • 保存并关闭文件,然后刷新终端:

    bash 复制代码
    source ~/.bashrc

4. 验证安装

完成以上步骤后,验证 pipx 是否安装成功:

bash 复制代码
pipx --version

如果显示 pipx 的版本号,说明安装成功。

5. 使用 pipx 安装工具

现在可以使用 pipx 安装 Python 命令行工具了。例如,安装 poetry

bash 复制代码
pipx install poetry

这时 pipx 会为 poetry 创建一个独立的虚拟环境,并将其添加到系统路径,确保它可以全局使用。

6. 卸载 pipx(可选)

如果你需要卸载 pipx,可以使用以下命令:

bash 复制代码
pip3 uninstall pipx

同时,可以删除 .bashrc 文件中对 ~/.local/bin 的 PATH 配置。

总结:

  1. 通过 pip 安装 pipx
  2. 确保 ~/.local/binPATH 中。
  3. 使用 pipx 安装和管理 Python 命令行工具。

四. 参考文献

相关推荐
搏博16 分钟前
Python3.9.13与深度学习框架TensorFlow的完整详细安装教程
python·tensorflow
胜天半月子25 分钟前
Python | 结合动态加载importlib模块来理解inspect模块的使用
python·importlib·inspect
Jurio.25 分钟前
Conda 管理项目环境
人工智能·python·深度学习·conda·virtualenv·pip
B站计算机毕业设计超人29 分钟前
计算机毕业设计SparkStreaming+Kafka新能源汽车推荐系统 汽车数据分析可视化大屏 新能源汽车推荐系统 汽车爬虫 汽车大数据 机器学习
数据仓库·爬虫·python·数据分析·kafka·数据可视化·推荐算法
Joyner20181 小时前
pytorch训练的双卡,一个显卡占有20GB,另一个卡占有8GB,怎么均衡?
人工智能·pytorch·python
瑞雨溪1 小时前
python中的OS模块的基本使用
开发语言·python
Leuanghing1 小时前
使用Python生成F分布表并导出为Excel文件
开发语言·python·excel·f分布
沈小农学编程1 小时前
【LeetCode面试150】——202快乐数
c++·python·算法·leetcode·面试·职场和发展
封步宇AIGC2 小时前
量化交易系统开发-实时行情自动化交易-4.2.1.简单移动平均线实现
人工智能·python·机器学习·数据挖掘
封步宇AIGC2 小时前
量化交易系统开发-实时行情自动化交易-4.1.4.A股布林带(BOLL)实现
人工智能·python·机器学习·数据挖掘