diff --git a/news/9839.bugfix.rst b/news/9839.bugfix.rst new file mode 100644 index 00000000000..b42717859b6 --- /dev/null +++ b/news/9839.bugfix.rst @@ -0,0 +1 @@ +Fix compatibility between distutils and sysconfig when the returned location is a symbolic link. diff --git a/src/pip/_internal/locations/__init__.py b/src/pip/_internal/locations/__init__.py index 18bf0319f3d..b5b5edb88a2 100644 --- a/src/pip/_internal/locations/__init__.py +++ b/src/pip/_internal/locations/__init__.py @@ -1,3 +1,4 @@ +import contextlib import logging import pathlib import sys @@ -45,6 +46,9 @@ def _default_base(*, user: bool) -> str: def _warn_if_mismatch(old: pathlib.Path, new: pathlib.Path, *, key: str) -> bool: if old == new: return False + with contextlib.suppress(OSError): + if old.samefile(new): + return False issue_url = "https://github.com/pypa/pip/issues/9617" message = ( "Value for %s does not match. Please report this to <%s>"