Skip to content

Commit

Permalink
Make pipenv work with the venv install scheme if it is detected
Browse files Browse the repository at this point in the history
  • Loading branch information
torsava committed May 4, 2022
1 parent 3e15161 commit 4673c78
Showing 1 changed file with 13 additions and 7 deletions.
20 changes: 13 additions & 7 deletions pipenv/environment.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import site
import sys
from pathlib import Path
from sysconfig import get_paths, get_python_version
from sysconfig import get_paths, get_scheme_names, get_python_version

import pkg_resources

Expand Down Expand Up @@ -174,6 +174,15 @@ def _replace_parent_version(self, path, replace_version):
return os.path.join(base, leaf)
return path

@cached_property
def install_scheme(self):
if "venv" in get_scheme_names():
return "venv"
elif os.name == "nt":
return "nt"
else:
return "posix_prefix"

@cached_property
def base_paths(self):
# type: () -> Dict[str, str]
Expand Down Expand Up @@ -213,9 +222,8 @@ def base_paths(self):
try:
paths = self.get_paths()
except Exception:
install_scheme = "nt" if (os.name == "nt") else "posix_prefix"
paths = get_paths(
install_scheme,
self.install_scheme,
vars={
"base": prefix,
"platbase": prefix,
Expand All @@ -236,9 +244,8 @@ def base_paths(self):
paths.update(self.get_lib_paths())
paths["scripts"] = self.script_basedir
if not paths:
install_scheme = "nt" if (os.name == "nt") else "posix_prefix"
paths = get_paths(
install_scheme,
self.install_scheme,
vars={
"base": prefix,
"platbase": prefix,
Expand Down Expand Up @@ -266,9 +273,8 @@ def script_basedir(self):
# type: () -> str
"""Path to the environment scripts dir"""
prefix = make_posix(self.prefix.as_posix())
install_scheme = "nt" if (os.name == "nt") else "posix_prefix"
paths = get_paths(
install_scheme,
self.install_scheme,
vars={
"base": prefix,
"platbase": prefix,
Expand Down

0 comments on commit 4673c78

Please sign in to comment.