首页 > 解决方案 > 在 MacOS Big Sur 中强制使用 10.x 轮子

问题描述

我最近将我的 MacOS 升级到了 Big Sur。当我尝试使用 pip 安装 Python 包时,找不到轮子,并且所有内容都被迫从源代码构建,导致安装速度非常慢,最糟糕的是,由于构建环境的限制,会出现许多安装错误。检查例如https://pypi.org/simple/numpy/。鉴于我使用的是 Python 3.8,最接近的可用轮子是numpy-1.19.4-cp38-cp38-macosx_10_9_x86_64.whl. 我想用这些轮子强制 pipmacosx_10_9看看会发生什么。你知道有什么方法可以实现吗?

标签: pythonmacospip

解决方案


我正在用一种强制平台的解决方法来回答自己,例如对于 numpy:

pip install --platform macosx_10_9_x86_64 --only-binary=:all: --target=/usr/local/lib/python3.8/site-packages numpy

遗憾的--target是,尽管有计划取消此要求(https://github.com/pypa/pip/issues/5453),但该选项是必要的。

我已经要求在https://github.com/pypa/pip/issues/9138pip中将 macosx_10_9 视为对 Big Sur 有效,但我猜这个提议被拒绝的可能性很高。

我不知道为新平台制造新车轮需要多长时间,但我认为在此期间解决方法已经足够好了。


第二个更脏但更方便的技巧是覆盖version_str

    version_str, _, cpu_arch = platform.mac_ver()  # type: ignore
    version_str = "10.15.1"

site-packages/pip/_vendor/packaging/tags.py


推荐阅读