You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1 Mac安装Django~=4.0失败:backports.zoneinfo编译报错

解决M1 Mac上Python3.8.9安装Django4.x时backports.zoneinfo编译失败的问题

核心问题是编译backports.zoneinfo时找不到Python.h头文件,以下是几个有效解决方法:

方法1:优先使用预编译wheel包,跳过源码编译

直接让pip使用现成的预编译二进制包,避免源码编译环节:

pip3 install django~=4.0 --only-binary :all:

如果单独安装backports.zoneinfo也失败,同样用这个命令:

pip3 install backports.zoneinfo --only-binary :all:

方法2:确保Xcode命令行工具及Python开发组件完整

  1. 安装或重装Xcode命令行工具:
xcode-select --install
  1. 若已安装,切换到完整Xcode路径(确保头文件路径正确):
sudo xcode-select --switch /Applications/Xcode.app
  1. 验证Python.h是否存在,执行:
find /Applications/Xcode.app -name Python.h | grep 3.8

如果能找到路径,说明头文件存在,重新执行Django安装命令即可。

方法3:指定arm64架构执行安装

M1 Mac的混合架构可能导致编译冲突,强制用arm64架构运行pip:

arch -arm64 pip3 install django~=4.0

方法4:重新安装带开发组件的Python3.8.9

系统自带的Python可能缺少开发头文件,用pyenv重新安装完整的Python3.8.9:

  1. 安装pyenv:
brew install pyenv
  1. 添加环境变量到~/.zshrc(如果用bash则是~/.bashrc):
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
  1. 重启终端后安装Python3.8.9:
pyenv install 3.8.9
  1. 设置当前shell使用该版本:
pyenv local 3.8.9
  1. 最后安装Django:
pip install django~=4.0

内容的提问来源于stack exchange,提问作者Anuj Pandey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 06:18:29