diff --git a/news/4330.bugfix.rst b/news/4330.bugfix.rst new file mode 100644 index 00000000..bf5c4aa3 --- /dev/null +++ b/news/4330.bugfix.rst @@ -0,0 +1 @@ +Fix a bug that paths are not normalized before comparison. diff --git a/news/4436.bugfix.rst b/news/4436.bugfix.rst new file mode 100644 index 00000000..36264016 --- /dev/null +++ b/news/4436.bugfix.rst @@ -0,0 +1 @@ +Fix a bug that invalid Python paths from Windows registry break ``pipenv install``. diff --git a/pipenv/vendor/pythonfinder/__init__.py b/pipenv/vendor/pythonfinder/__init__.py index 249cfd91..9e147d78 100644 --- a/pipenv/vendor/pythonfinder/__init__.py +++ b/pipenv/vendor/pythonfinder/__init__.py @@ -10,7 +10,7 @@ from .exceptions import InvalidPythonVersion from .models import SystemPath, WindowsFinder from .pythonfinder import Finder -__version__ = "1.2.4" +__version__ = "1.2.5" logger = logging.getLogger(__name__) diff --git a/pipenv/vendor/pythonfinder/models/path.py b/pipenv/vendor/pythonfinder/models/path.py index 5c672715..e8c13429 100644 --- a/pipenv/vendor/pythonfinder/models/path.py +++ b/pipenv/vendor/pythonfinder/models/path.py @@ -302,7 +302,7 @@ class SystemPath(object): normalized = normalize_path(current_path) if normalized != target: new_order.append(normalized) - new_order = [p for p in reversed(new_order)] + new_order = [ensure_path(p).as_posix() for p in reversed(new_order)] return attr.evolve(self, path_order=new_order, paths=new_paths) def _setup_asdf(self): diff --git a/pipenv/vendor/pythonfinder/models/windows.py b/pipenv/vendor/pythonfinder/models/windows.py index 928f0ff2..c69b9484 100644 --- a/pipenv/vendor/pythonfinder/models/windows.py +++ b/pipenv/vendor/pythonfinder/models/windows.py @@ -96,7 +96,7 @@ class WindowsFinder(BaseFinder): py_version = PythonVersion.from_windows_launcher( version_object, name=name, company=company ) - except InvalidPythonVersion: + except (InvalidPythonVersion, AttributeError): continue if py_version is None: continue diff --git a/pipenv/vendor/vendor.txt b/pipenv/vendor/vendor.txt index 23806f06..91790fc3 100644 --- a/pipenv/vendor/vendor.txt +++ b/pipenv/vendor/vendor.txt @@ -20,7 +20,7 @@ pipdeptree==0.13.2 pipreqs==0.4.10 docopt==0.6.2 yarg==0.1.9 -pythonfinder==1.2.4 +pythonfinder==1.2.5 requests==2.23.0 chardet==3.0.4 idna==2.9