This commit is contained in:
Zanie Blue 2025-07-06 00:04:22 +02:00 committed by GitHub
commit 8262dc5954
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -10,20 +10,21 @@ def find_uv_bin() -> str:
uv_exe = "uv" + sysconfig.get_config_var("EXE") uv_exe = "uv" + sysconfig.get_config_var("EXE")
# Search in the scripts directory for the current prefix
path = os.path.join(sysconfig.get_path("scripts"), uv_exe) path = os.path.join(sysconfig.get_path("scripts"), uv_exe)
if os.path.isfile(path): if os.path.isfile(path):
return path return path
if sys.version_info >= (3, 10): # If in a virtual environment, also search in the base prefix's scripts directory
user_scheme = sysconfig.get_preferred_scheme("user") if sys.prefix != sys.base_prefix:
elif os.name == "nt": path = os.path.join(
user_scheme = "nt_user" sysconfig.get_path("scripts", vars={"base": sys.base_prefix}), uv_exe
elif sys.platform == "darwin" and sys._framework: )
user_scheme = "osx_framework_user" if os.path.isfile(path):
else: return path
user_scheme = "posix_user"
path = os.path.join(sysconfig.get_path("scripts", scheme=user_scheme), uv_exe) # Search in the user scheme scripts directory, e.g., `~/.local/bin`
path = os.path.join(sysconfig.get_path("scripts", scheme=_user_scheme()), uv_exe)
if os.path.isfile(path): if os.path.isfile(path):
return path return path
@ -34,3 +35,15 @@ def find_uv_bin() -> str:
return target_path return target_path
raise FileNotFoundError(path) raise FileNotFoundError(path)
def _user_scheme() -> str:
if sys.version_info >= (3, 10):
user_scheme = sysconfig.get_preferred_scheme("user")
elif os.name == "nt":
user_scheme = "nt_user"
elif sys.platform == "darwin" and sys._framework:
user_scheme = "osx_framework_user"
else:
user_scheme = "posix_user"
return user_scheme