pypa/pipx

pipx list - show injected apps

Open

#997 opened on Jun 2, 2023

View on GitHub
 (5 comments) (2 reactions) (0 assignees)Python (7,844 stars) (363 forks)batch import
enhancementhelp wanted

Description

Currently, pipx list shows only the main scripts (.exe's) executable from an installed venv:

   package flit 3.9.0, installed using Python 3.9.5
    - flit.exe

When injecting a package and including its apps:

pipx inject flit keyring --include-apps

pipx will happily report that this app is now globally available,

These apps are now globally available
    - keyring.exe

but nevertheless not show it when running pipx list, which still shows exactly the output above. AFAIK there is no way to discover the availability of keyring.exe after that.

There is pipx list --include-injected, but this will only list the included packages, not the apps / scripts they might bring along:

 package flit 3.9.0, installed using Python 3.9.5
    - flit.exe
    Injected Packages:
      - keyring 23.13.1

It would be nice if pipx list could somehow list all of them in one command, for example:

> pipx list
 package flit 3.9.0, installed using Python 3.9.5
    - flit.exe
    - keyring.exe (injected)

or like this

> pipx list --include-injected
 package flit 3.9.0, installed using Python 3.9.5
    - flit.exe
    Injected Packages:
      - keyring 23.13.1
          - keyring.exe

All the functionality is there to make injected apps available globally, which can make sense if they are dependencies of a root package anyway and therefore already installed in its venv. But at the moment it's hard for the user to discover and make use of them, even though they were explicitly made available with pipx inject.

Contributor guide