“WARNING: Value for scheme.data does not match” when I try to update pip or install packages

(A pip maintainer here!)

This warning is not harmful per-se, and doesn’t affect any installation logic. You can safely use the current pip, ignoring this warning for now.

For those who want a quick answer to silencing this warning: python -m pip install pip=={some-older-version} — you can pin to an older version of pip for now. It’s unnecessary IMO, but you can pick your poison (some warnings to ignore vs older pip version).


For those who want to understand more: This warning was added because we wanted to surface issues that might take place, when we make a transition in the future.

For historical reasons (uhm… Python 2), pip has used distutils.sysconfig to get information about where to install your Python packages. That module can be functionally replaced by sysconfig that was added to the Python standard library in Python 3.2. However, Python distributors patch it (and not sysconfig) to provide an alternative “default install scheme”.

PEP 632 deprecates distutils, and it is going to be removed from the Python standard library. distutils-based installations is something that the Python packaging community has been trying to deprecate and remove for a while.

We’ve been working with a lot of distributors to get them to fix their patches, so that installations in the future can transition to using sysconfig as their source of truth. This message is a part of our “get information from users of broken Python installations”. As you’ve probably noticed, Python installations with differently configured distutils.sysconfig and sysconfig are exceedingly more common than we’d expected. 🙂

Update: Newer versions of pip (>21.1.1) should present these messages much less often. If you’re still seeing these messages, please look at the issue that the message contains.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)