Edit: Typo: reinstalling a version of package currently being used
Edit: Typo: reinstalling a version of package currently being used
Conda obviously offers a lot of value in sharing hairy compiled packages, but it does not play well with anything else. None of available the tooling really works with both conda and pip. It fragments the already lousy packaging story.
my main thing w/ conda is it's bananas figuring out how to make a new recipe, which is pretty surprising
Just as an explanation: a "version" in Python packaging can come from one of many potential distributions, including a local distribution (such as a path on disk) that might different from a canonical released distribution on PyPI. Having `pip install ...` always re-install based on its candidate selection rules is generally good (IMO), since an explicit run of `pip install` implies user intent to search for a potentially new or changed distribution.
This one I've seen when the dependency doesn't specify an exact version and you included "--upgrade".
There's a second case that I think was fixed in pip 21 or 22, where two transitive dependencies overlap - A and B depend on C, but with different version ranges. If A allows a newer version of C than B allows, C can get installed twice.
We ran into many unsolvable or 30m+ solvable envs with conda that mamba handled quickly.
The underlying solver can be used with conda directly as well, but I have not done that (https://www.anaconda.com/blog/a-faster-conda-for-a-growing-c...)