diff --git a/src/pip/_internal/resolution/resolvelib/candidates.py b/src/pip/_internal/resolution/resolvelib/candidates.py index 1d21ede72cc..722e31c1bc0 100644 --- a/src/pip/_internal/resolution/resolvelib/candidates.py +++ b/src/pip/_internal/resolution/resolvelib/candidates.py @@ -138,7 +138,6 @@ class exposes appropriate information to the resolver. found remote link (e.g. from pypi.org). """ - dist: BaseDistribution is_installed = False def __init__( @@ -156,9 +155,17 @@ def __init__( self._ireq = ireq self._name = name self._version = version - self.dist = self._prepare() + self._dist: Optional[BaseDistribution] = None self._hash: Optional[int] = None + @property + def dist(self) -> BaseDistribution: + if self._dist is not None: + return self._dist + + self._dist = self._prepare() + return self._dist + def __str__(self) -> str: return f"{self.name} {self.version}"