mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-08 05:45:00 +00:00
Catch broken mac_ver()
(#11396)
A user reported a homebrew Python that would raise an exception in the interpreter probing script because `platform.mac_ver()` returned `('', ('', '', ''), '')` on his installation due to https://github.com/Homebrew/homebrew-core/issues/206778 This is easy enough to catch and show a proper error message instead of the Python backtrace.
This commit is contained in:
parent
ca49495e4b
commit
ddbc6e3150
2 changed files with 8 additions and 2 deletions
|
@ -482,6 +482,10 @@ def get_operating_system_and_architecture():
|
|||
# https://github.com/astral-sh/uv/issues/2450
|
||||
version, _, architecture = platform.mac_ver()
|
||||
|
||||
if not version or not architecture:
|
||||
print(json.dumps({"result": "error", "kind": "broken_mac_ver"}))
|
||||
sys.exit(0)
|
||||
|
||||
# https://github.com/pypa/packaging/blob/cc938f984bbbe43c5734b9656c9837ab3a28191f/src/packaging/tags.py#L356-L363
|
||||
is_32bit = struct.calcsize("P") == 4
|
||||
if is_32bit:
|
||||
|
@ -559,7 +563,7 @@ def main() -> None:
|
|||
use_sysconfig_scheme = bool(
|
||||
getattr(sysconfig, "_PIP_USE_SYSCONFIG", sys.version_info >= (3, 10))
|
||||
)
|
||||
|
||||
|
||||
# If we're not using sysconfig, make sure distutils is available.
|
||||
if not use_sysconfig_scheme:
|
||||
try:
|
||||
|
@ -575,7 +579,7 @@ def main() -> None:
|
|||
__import__("_distutils_hack").remove_shim()
|
||||
except (ImportError, AttributeError):
|
||||
pass
|
||||
|
||||
|
||||
import distutils.dist
|
||||
except ImportError:
|
||||
# We require distutils, but it's not installed; this is fairly
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue