pipx 解决了流行的 pip 工具的不足之处。学习在 Linux 中安装和使用 pipx

pip 是一种流行的工具,用于从 Python 包索引 中安装 Python 包和模块。

然而,在最近的发行版本中,pip 用户遇到了 外部管理环境错误

error: externally-managed-environment

这是为避免通过 pip 安装的 Python 包与本机包管理器之间发生冲突而添加的“功能”。Python 希望你使用单独的虚拟环境,而不是通过 pip 在全局安装包。

这就是 pipx 发挥作用的地方。它为你安装的每个应用创建一个新的虚拟环境,然后在全局级别的 /bin 中创建到本地二进制文件的链接。这一切都是自动的。它为你节省时间和精力。

让我们看看如何在 Ubuntu 和其他 Linux 发行版上安装和使用 pipx

在 Ubuntu 和其他 Linux 上安装 pipx

安装很简单,可以在 Ubuntu 和 Debian 上使用以下命令安装:

sudo apt update && sudo apt install pipx

对于其他发行版,请使用你的包管理器并安装它。

完成安装后,将其添加到 $PATH 以便可以从任何地方访问它:

pipx ensurepath

install pipx in ubuntu

关闭终端并重新启动它。这就完成了! 现在,让我们看看如何使用它。

使用 pipx

包管理器的主要用途是什么? 软件包安装、更新和删除。

让我向你展示如何使用 pipx 执行以下操作:

  • 搜索包
  • 包安装
  • 升级
  • 包移除

让我们从安装开始。

如何使用 pipx 安装包

要使用 pipx 安装包,你必须遵循一个简单的命令语法:

pipx install <package_name>

例如,在这里,我安装了一个非常有用的程序 Cowsay:

pipx install cowsay

install python packages in isolation using pipx in ubuntu

同样,如果你想安装特定版本的包,你必须在 == 后跟上版本号,如下所示:

pipx install package==version

例如,在这里,我安装了 1.24.1 版本的 numpy:

pipx install numpy==1.24.1

如何搜索包

pipx 程序没有搜索功能(因为 PyPI 的 API 使用限制)但这并不意味着你不能搜索 Python 包。

要搜索包,你需要安装 pypisearch

pipx install pypisearch

完成后,你可以使用 pypisearch 命令搜索包:

pypisearch python_package_name

在这里,我搜索了 neofetch:

search python packages in Ubuntu

如何使用 pipx 升级包

与任何其他现代包管理器一样,你可以一次升级所有包,也可以一次升级一个包。

要一次升级所有软件包,你只需执行以下命令:

pipx upgrade-all

upgrade all the python packages at once in ubuntu

如你所见,它将 numpy 升级到最新版本。

但是如果你想升级一个特定的包,你可以这样做:

pipx upgrade package-name

假设我想将 cowsay 包升级到最新版本,那么,我将使用以下命令:

pipx upgrade cowsay

upgrade specific python package using pipx in ubuntu

如何使用 pipx 卸载包

要删除包,你必须使用 uninstall 标志,如下所示:

pipx uninstall package_name

为了供你参考,在这里,我从我的系统中删除了 numpy

pipx uninstall numpy

remove python packages using pipx in ubuntu

pip 还是 pipx?

pip 的限制影响了最终用户对它的使用。值得庆幸的是,pipx 提供了急需的替代方案。它符合使用虚拟环境的 Python 准则,同时允许已安装的应用在全局范围内可用。

对于不是 Python 应用开发的最终用户,这提供了使用发行版仓库中不可用的 Python 应用的选项。

希望本教程对你有所帮助。如果你有任何问题或建议,请告诉我。

(题图:MJ/fc6190e2-a412-443e-a83c-91fce1dcf695)


via: https://itsfoss.com/install-pipx-ubuntu/

作者:Sagar Sharma 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

添加新评论