pipx[1][2] 是安装并运行 Python 编写的命令行工具。

pipx 支持如下功能:

  • 将 Python 包安全地安装在隔离环境中,同时又可以全局暴露出命令行的调用入口。这样可以避免依赖之间的冲突。
  • 列举、更新和删除使用 pipx 安装的包
  • 在临时环境中运行某个 Python 应用的最新版

pipx 需要 Python 3.6 及以上版本,同时必须已经安装好了 pip。

# 安装 pipx

pipx 会为安装的每一个包自动创建隔离环境,并自动设置环境变量。安装的包能够被执行,非常使用安装那些命令行程序,比如 block、httpie、poetry。

首先在系统 Python 环境中安装 pipx

pip install pipx

将 pipx 的虚拟环境加入到环境变量里面:

pipx ensurepath

按照此命令打印的说明,可以完成命令行操作:

pipx completions

验证安装成功:

pipx list 
  nothing has been installed with pipx ?

此时尚未安装任何软件包。

# 安装 Python 包

要全局安装 Python 应用,例如 cowsay,请运行:

pipx install cowsay
  installed package cowsay 4.0, installed using Python 3.8.13
  These apps are now globally available
    - cowsay.exe
done! ✨ 🌟 ✨

此命令将自动创建虚拟环境,在其中安装包并包的可执行文件放在 $PATH 中。

测试新安装的 cowsay 程序:

cowsay moon
  ____
| moon |
  ====
    \
     \
       ^__^
       (oo)\_______
       (__)\       )\/\
           ||----w |
           ||     ||

在这里,它仅仅是一个例子。你可以安装 / 测试任何其他的 Python 包。

再次列出 pipx 安装的 Python 包

pipx list
venvs are in C:\Users\i\.local\pipx\venvs
apps are exposed on your $PATH at C:\Users\i\.local\bin
   package cowsay 4.0, installed using Python 3.8.13
    - cowsay.exe

pipx 的默认虚拟环境位置是 ~/.local/pipx 。这可以用环境变量 PIPX_HOME 覆盖。pipx 二进制文件的默认位置是 ~/.local/bin ,你可以使用 PIPX_BIN_DIR 环境变量覆盖它。如果要覆盖 PIPX_BIN_DIR ,只需运行 userpath append $PIPX_BIN_DIR ,确保它在你的路径中。

一些我用的程序:

  • amzqr
  • caj2pdf-restructured
  • dvc
  • gppt
  • jupyterlab
  • nuitka
  • pybind11
  • twine
  • you-get
  • youtube-dl

# 在指定环境中添加包[3]

比如在 poetry 环境添加插件:

pipx inject poetry poetry-version-plugin

移除 poetry 环境插件:

pipx runpip poetry uninstall poetry-plugin

# 升级包

要升级指定的安装包,只需执行以下操作:

pipx upgrade cowsay

要一次性升级所有已安装的软件包,请使用:

pipx upgrade-all

从临时虚拟环境运行应用

有时,你可能希望运行特定的 Python 程序,但并不实际安装它。

pipx run pycowsay moooo

在临时隔离虚拟环境中运行 Python 应用

此命令实际上并不安装指定程序,而是从临时虚拟环境运行它。你可以使用此命令快速测试 Python 应用。

甚至可以直接运行在线的 .py 文件。

pipx run https://gist.githubusercontent.com/cs01/fa721a17a326e551ede048c5088f9e0f/raw/6bdfbb6e9c1132b1c38fdd2f195d4a24c540c324/pipx-demo.py
pipx is working!

# 卸载软件包

可以使用以下命令卸载软件包:

pipx uninstall cowsay

要删除所有已安装的包:

pipx uninstall-all

# 获得帮助

要查看帮助部分,请运行:

pipx --help

就是这些了。如果你一直在寻找安全,方便和可靠的程序来安装和运行 Python 应用,pipx 可能是一个不错的选择。

# 参考资料


  1. pipx ↩︎

  2. GitHub ↩︎

  3. Plugins ↩︎