Not quite. There’s a lot of messy history here, which I doubt would be of interest, around what we have and haven’t standardised, and how pip treats sdists (which have no standard).
There is a possible pip issue here. In theory, pip should only need the project name and version as long as you say --no-deps
, and those are available from the sdist filename. So there should be no need to build when you have --no-deps
. However, we don’t yet have a standard that says sdist filenames must include the name and version, so there’s a remote possibility that by assuming that, pip gets things wrong. We double-check during the build (when we do get a reliable name and version) and give an error if there’s a problem.
I don’t believe we’re deliberately doing that check for pip download
- it’s a side-effect of implementation details. Certainly I don’t think the check is valuable enough to warrant a command line option.
The real solution here is to finally get round to standardising the sdist format. Obviously that’s not much help right now, though. We could try to stop pip doing this check on pip download
as a short-term fix, as @uranusjr suggested. We may have to document that we dropped that check, but I doubt (famous last words!) anyone would care.
However, this is all in an area that the “new resolver” work is changing quite significantly. It may be that the new resolver code doesn’t even have this issue, which would mean that “use the new resolver” would be a sufficient workaround in the short term.
So, could you try pip download --no-deps --no-binary :all: --unstable-feature=resolver pandas
, and see if that avoids the build step?