安装独立命令行工具

许多包提供命令行应用程序。此类包的示例有 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 的信息。