question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

pipx install erroneously exposing binaries of dependencies despite no `--include-deps` switch

See original GitHub issue

This might already be possible, I couldn’t find out how however.

How would this feature be useful? Currently when installing a package all of it’s included apps (dependencies?) are exposed to $PATH, even though when I for instance want to install organize using pipx install organize-tool I really only want the organize binary to be exposed. I assume (with my limited knowledge of python packages) that these apps are actually required for the main app but could also be contained to the venv and don’t need to be exposed to $PATH.

What is actually installed is the following:

   package organize-tool 1.9.1, Python 3.8.5
    - EXIF.py
    - activate-global-python-argcomplete
    - docx2txt
    - dumppdf.py
    - latin2ascii.py
    - organize
    - pdf2txt.py
    - python-argcomplete-check-easy-install-script
    - python-argcomplete-tcsh
    - register-python-argcomplete
    - textract

I looked for a way to do this and thought I might be able to do so by editing the pipx_metadata.json but unfortunately that doesn’t seem to be the case.

Describe the solution you’d like Given that it’s probably not practical to determine which of the apps included is the main one it’d probably be better to make this configurable by the user themselves in for instance the pipx_metadata.json

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:26 (16 by maintainers)

github_iconTop GitHub Comments

1reaction
jwoddercommented, Nov 25, 2020

I believe I know what’s going on. I just stumbled upon this behavior and was about to file a bug report.

The problem is: When pipx installs package foo that depends on bar that has an entry point bar-cmd, if a bar-cmd program already exists in PIPX_BIN_DIR (e.g., if bar is already installed at the user level), then bar-cmd will be listed as a pipx-installed command in the output from pipx install and pipx list even though it is not. Fortunately, pipx has enough sense to not delete bar-cmd when pipx uninstall foo is run, which suggests that it can tell whether a given command is managed by pipx, it’s just not doing it in all cases.

1reaction
sandersantemacommented, Nov 24, 2020

There was nothing about PIP or python in my env. If you’d want to it might be more informative to try it out on openSuSE Tumbleweed the distro which I’m running, I suppose it might be possible its got something to do with Tumbleweed itself although I think it’s doubtful. Otherwise I’ll try to debug some more myself once I’ve got some more free time.

Read more comments on GitHub >

github_iconTop Results From Across the Web

pipx — Install and Run Python Applications in Isolated ...
Expose CLI entrypoints of packages ("apps") installed to isolated environments with the install command. This guarantees no dependency conflicts and clean ...
Read more >
History | Poetry - Python dependency management and ...
Fix an issue where poetry install fails because of missing hashes for url dependencies (#6389). Fix an issue where Poetry was not able...
Read more >
pipenv Documentation - Read the Docs
Will create a virtual env and install dependencies (if it does not exist already) ... Once you have pipx ready on your system,...
Read more >
How I Work: pipx - Two is Too Many
pipx install sometool creates a virtualenv, pip installs the tool and ... wildly incompatible library dependencies without any problems as ...
Read more >
Install and Run Python Applications in Isolated Environments
pipx does not ship with pip, but installing it is often an ... pipx install erroneously exposing binaries of dependencies despite no ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found