安装独立命令行工具#

许多包都提供命令行应用程序。此类包的示例包括 mypyflake8blackPipenv

通常,您希望能够从系统上的任何位置访问这些应用程序,但在同一全局环境中安装包及其依赖项可能会导致版本冲突,并破坏操作系统对 Python 包的依赖性。

pipx 通过为每个包创建一个虚拟环境来解决此问题,同时还确保可以通过 $PATH 上的目录访问其应用程序。这允许升级或卸载每个包,而不会与其他包发生冲突,并且允许您从任何地方安全地运行应用程序。

注意

pipx 仅适用于 Python 3.6+。

pipx 使用 pip 安装

python3 -m pip install --user pipx
python3 -m pipx ensurepath
py -m pip install --user pipx
py -m pipx ensurepath

注意

ensurepath 确保应用程序目录位于您的 $PATH 中。您可能需要重新启动终端才能使此更新生效。

现在,您可以使用 pipx install 安装包,并从任何地方运行包的应用程序。

$ pipx install PACKAGE
$ PACKAGE_APPLICATION [ARGS]

例如

$ pipx install cowsay
  installed package cowsay 6.1, installed using Python 3.12.2
  These apps are now globally available
    - cowsay
done! ✨ 🌟 ✨
$ cowsay -t moo
  ___
< moo >
  ===
        \
         \
           ^__^
           (oo)\_______
           (__)\       )\/
               ||     ||
               ||----w |

要查看使用 pipx 安装的包列表以及可用的应用程序,请使用 pipx list

$ pipx list
venvs are in /Users/user/Library/Application Support/pipx/venvs
apps are exposed on your $PATH at /Users/user/.local/bin
manual pages are exposed at /Users/user/.local/share/man
   package black 24.2.0, installed using Python 3.12.2
    - black
    - blackd
   package cowsay 6.1, installed using Python 3.12.2
    - cowsay
   package mypy 1.9.0, installed using Python 3.12.2
    - dmypy
    - mypy
    - mypyc
    - stubgen
    - stubtest
   package nox 2024.3.2, installed using Python 3.12.2
    - nox
    - tox-to-nox

要升级或卸载包

pipx upgrade PACKAGE
pipx uninstall PACKAGE

pipx 可以使用 pip 升级或卸载

python3 -m pip install --upgrade pipx
python3 -m pip uninstall pipx
py -m pip install --upgrade pipx
py -m pip uninstall pipx

pipx 还允许您在临时短暂的环境中安装和运行应用程序的最新版本。例如

pipx run cowsay -t moooo

要查看 pipx 提供的命令的完整列表,请运行

pipx --help

您可以在 https://pipx.pypa.io/ 了解更多有关 pipx 的信息。