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

Question:

I have a M1 Mac and I just noticed that when I try to upgrade pip or install any packages I get a series of warnings:

user@mac01 ~ $python3 -m pip install --upgrade pip
WARNING: Value for scheme.platlib does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew/lib/python3.9/site-packages
sysconfig: /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages
WARNING: Value for scheme.purelib does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew/lib/python3.9/site-packages
sysconfig: /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages
WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew/include/python3.9/UNKNOWN
sysconfig: /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.9/include/python3.9
WARNING: Value for scheme.scripts does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew/bin
sysconfig: /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.9/bin
WARNING: Value for scheme.data does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew
sysconfig: /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.9
WARNING: Additional context:
user = False
home = None
root = None
prefix = None
Requirement already satisfied: pip in /opt/homebrew/lib/python3.9/site-packages (21.1)
WARNING: Value for scheme.platlib does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew/lib/python3.9/site-packages
sysconfig: /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages
WARNING: Value for scheme.purelib does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew/lib/python3.9/site-packages
sysconfig: /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages
WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew/include/python3.9/UNKNOWN
sysconfig: /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.9/include/python3.9
WARNING: Value for scheme.scripts does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew/bin
sysconfig: /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.9/bin
WARNING: Value for scheme.data does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /opt/homebrew
sysconfig: /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.9
WARNING: Additional context:
user = False
home = None
root = None
prefix = None
user@mac01 ~ $

Please advise.

Asked By: daquezada

||

Answers:

downgrading to an earlier version of pip fixed it for me:

python -m pip install pip==21.0.1

Answered By: EmilMachine

(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.

Answered By: pradyunsg

For those who failed to run python -m pip install pip==21.0.1 (for example returned the same error message like ValueError: check_hostname requires server_hostname), you can try to disable the system proxy and retry the command (If you were using some proxy like shadowsocks, v2ray, etc).

Answered By: laoyb

IF you, by any chance made any changes to your anaconda (reinstall, update, remove), then the problem may be from which python your pip is trying to use.

If you take a look at the pip (/usr/local/bin/pip3), the shebang may be pointing to a different python file path.

I had the same problem, and I solved it by changing the python reference in the pip3 file.

Answered By: J Lee

Interestingly, pip even complains about itself:

C:python>python -m pip install --upgrade --force-reinstall pip
Collecting pip
  Using cached pip-21.1-py3-none-any.whl (1.5 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 21.1
    Uninstalling pip-21.1:
      Successfully uninstalled pip-21.1
WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: C:pythonIncludeUNKNOWN
sysconfig: C:pythonInclude
WARNING: Additional context:
user = False
home = None
root = None
prefix = None
Successfully installed pip-21.1

You can suppress pedantic warnings by using pip install foo 2>nul on Windows, or pip install foo 2>/dev/null on Linux. However, be warned: this will also suppress important errors

Answered By: RexBarker

Have you tried running it from a virtual environment?

python3 -m venv venv
source ./venv/bin/activate
pip install --upgrade pip
Answered By: Bicameral Mind
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.