Mac执行poetry install报错:MarkupSafe-2.0.1 wheel不兼容平台
问题原因及解决方法
核心原因
这个报错的核心是架构不兼容:
- 你下载的
MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl是针对Intel(x86_64)架构Mac的wheel包 - 如果你的Mac是Apple Silicon(M系列芯片,架构为arm64),或者pyenv安装的Python版本和系统架构不匹配,就会触发这个不支持的报错
- 另外,若你用的是Intel Mac但系统版本低于macOS 10.9,也会出现这个错误(目前这种情况极少)
解决步骤
第一步:确认系统和Python架构
先明确自己的硬件架构与当前Python版本的架构:
- 查看Mac架构:执行
uname -m,输出arm64为Apple Silicon,x86_64为Intel - 查看Python架构:执行
python -c "import platform; print(platform.machine())"
情况1:Apple Silicon Mac(arm64)
若Python架构显示x86_64,说明pyenv安装的是Intel版本的Python,和系统架构不匹配:
- 卸载现有Python:
pyenv uninstall 3.8.13 - 设置环境变量指定编译arm64版本:
export PYENV_CONFIGURE_OPTS="--enable-universalsdk --with-universal-archs=arm64" - 重新安装Python:
pyenv install 3.8.13 - 重新指定Poetry环境:
poetry env use 3.8.13 - 再次执行
poetry install
如果不想重新安装Python,也可以强制从源码编译MarkupSafe:
执行 poetry install --no-binary :all: MarkupSafe,让pip跳过wheel包直接编译源码安装
情况2:Intel Mac(x86_64)
若系统版本低于macOS 10.9,建议升级系统到10.9以上;若系统版本符合要求,试试以下操作:
- 升级pip及相关工具:
python -m pip install --upgrade pip setuptools wheel - 清理缓存后重新安装:
poetry cache clear pypi --all && poetry install
备选方案
如果以上方法都无效,可以尝试升级MarkupSafe版本到2.1.0及以上(这些版本提供了Apple Silicon兼容的wheel包),修改pyproject.toml:
MarkupSafe = ">=2.0.1,<3.0"
然后执行 poetry update MarkupSafe 再重新安装
内容的提问来源于stack exchange,提问作者Oscar Feliciano
相关产品推荐
相关产品推荐

