Skip to content

Allow packages that depend on other packages' executables to work #1649

@rrthomas

Description

@rrthomas

How would this feature be useful?

If I pipx install linton, then try to use the program, it gives an error that it can't find the nancy executable.

This is because linton depends on nancy, but uses it via its executable, which it runs with subprocess.check_call.

This is not a problem when installing via pip.

Describe the solution you'd like

I presume that script entry points for packages installed by pipx are installed somewhere; it would seem sufficient to add that place to the PATH of the scripts installed for the actual package being installed; so in this case, linton should have in its PATH the location of the nancy script.

Describe alternatives you've considered

  • Special-casing support for pipx: somehow have linton work out it's been installed by pipx, and have it compute the path of nancy specially.
  • Compute the exact path of the installed script. I have no idea how to do this.
  • Rather than use subprocess.check_call, invoke Nancy as a Python module. This happens to be feasible in this case (because Nancy has a trivial main function that takes the same arguments as the command line).

Also, in this case I have other options open because I'm the maintainer of both packages, but none of the solutions I can think of work for 3rd-party dependencies.

Forgive me if I've overlooked something, as this seems a fairly obvious problem, but reading the docs and searching more widely has not yielded any insights.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions