-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Unhelpful errors with --only-binary :all: when binaries are not available #12999
Comments
I agree the messaging could be improved. But I'm not convinced it is sensible to detect that But I would generally be supportive of improving conflict messages and I would happily assist in a PR that did that.
FYI, the flag you might be looking for is |
It's understandable that it would be hard to detect whether the issue is due to command line flags. The "try not using --only-binary" part of the suggested improved error message isn't nearly as important as the "cytoolz cannot be installed because no compatible binary packages are available" part. And the part where it doesn't confuse the issue by spending a lot of vertical screen space talking about the intermediate dustgoggles package. dustgoggles did nothing wrong here :) I cannot promise to develop a PR for this myself. I know nothing about the guts of pip.
Thanks for the tip; the situation that prompted this report is complicated enough that it might not work for me but I'll give it a try. |
Yeah, I think I have an existing issue (although I can't find it right now) where I suggest improving it to something like this:
But I've never had time to go and make this PR. |
Description
If you try to install a package in
--only-binary :all:
mode, and dependency resolution fails because some of the dependencies are only available as sdists, you may get unhelpful error messages that make it look like the problem is a dependency conflict.A good example right now is the
pdr
package. It has a transitive dependency oncytoolz
, which is a compiled-code package. Currently there are no prebuilt wheels of cytoolz for the just-released Python 3.13 (pytoolz/cytoolz#209). Here is a transcript of what happens if you try to install pdr right now (technically yesterday) in a Python 3.13 virtualenv, using--only-binary :all:
If you don't use
--only-binary :all:
, it downloads cytoolz-1.0.0.tar.gz and builds it from source and everything is fine. (Or possibly the installation fails because you don't have a C compiler available, but that's not a problem with pip, it's just why you were using--only-binary
in the first place 😉 .)Expected behavior
The error message in this case should say something like
pip version
24.2
Python version
3.13.0
OS
linux, macos
How to Reproduce
--only-binary :all:
Output
see above
Code of Conduct
The text was updated successfully, but these errors were encountered: