-
-
Notifications
You must be signed in to change notification settings - Fork 610
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make it possible to figure out why packages conflict #2072
Comments
Seems like a bug in the depresolver (resolvelib that pip relies on) or our exception handling. This is because we use pip internals that are not public API. So I recommend locking pip-tools itself with its transitive deps just like you do for your app's deps. |
Alternatively, if you use one of the latest pip versions, try upgrading pip-tools that can handle them. |
I tried with pip-tools 7.4.1 and pip 24.0 (latest versions of both) and got the same error message. I switched to the legacy resolver and got something much more interpretable
But I understand this is no longer the recommended resolver? |
I think the latest pip has removed the legacy resolver already. I know that resolvelib is more correct and can't output conflicting deps like the old one could. If you use the old resolver, it might be worth running |
Does using just |
Here's a simplified version of the files that reproduces this issue (still using pip-tools 7.4.1 and pip 24.0):
No,
Compare this with
It looks like the conflict information I need is somewhere in there, but it's not readable (at least not by a mere human like me). |
Yeah, this is definitely worth improving. I guess, pip-tools needs to intercept the exception and print out the attached metadata in a more human-oriented format. |
OTOH, if the error output is coming from a subprocess, we wouldn't be able to do anything about it. Somebody needs to inspect this deeper. |
pip-tools/piptools/resolver.py Lines 662 to 663 in 6f2c9cd
We could definitely refrain from doing that and instead print out the conflict causes in human-readable format. |
What's the problem this feature will solve?
Using pip-tools 7.3.0
I'm trying to generate a requirements.txt file from a requirements.in file that has constraints based on another file. There's a dependency conflict, but pip-compile no longer provides enough useful information to troubleshoot the issue. I feel like it was easier to interpret in earlier versions of pip-compile (maybe 1-2 years ago?), but now it's practically uninterpretable.
Here's my
dbt.in
file:When I try to pip-compile it, I get an error:
The only thing I can tell clearly is:
The dagster.txt file does not have any
dbt-core
packages, but presumablydagster
anddbt-core
both have some shared dependency that is in conflict. How can I use pip-compile to figure out what that is?Describe the solution you'd like
A human-readable version of the garbage following
pip._vendor.resolvelib.resolvers.ResolutionImpossible
in the error message above.The text was updated successfully, but these errors were encountered: