安装dulwich时clang执行失败报错,寻求解决方案
我来帮你梳理几个针对性的解决思路,都是Mojave下这类开发环境损坏问题的常见修复手段:
确认Xcode命令行工具的关联路径
先检查当前命令行工具指向的路径是否正确:xcode-select -p如果输出不是
/Applications/Xcode.app/Contents/Developer,执行以下命令切换到正确路径:sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer检查并安装缺失的MacOSX 10.14 SDK
手动前往路径/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/查看是否存在MacOSX10.14.sdk目录。如果缺失:- 打开Xcode,进入「偏好设置」→「组件」
- 在列表中找到「MacOSX 10.14 SDK」并点击安装
- 等待安装完成后重启终端再尝试操作
临时指定SDK环境变量
如果SDK存在但clang仍无法识别,可以临时设置SDKROOT环境变量来指定路径:export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk设置完成后直接执行
pip install dulwich或brew update测试。如果需要永久生效,可将该命令添加到你的shell配置文件中(比如~/.bash_profile或~/.zshrc)。修复系统头文件路径
Mojave升级后系统头文件默认不再放在标准搜索路径,可通过安装专门的头文件包修复:sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /如果找不到这个pkg文件,建议重新安装Xcode命令行工具:
sudo rm -rf /Library/Developer/CommandLineTools xcode-select --install重建虚拟环境
之前删除venv后环境依赖已被破坏,等上述步骤修复完系统环境后,重新创建并激活虚拟环境:python3 -m venv venv source venv/bin/activate pip install --upgrade setuptools pip pip install dulwich检查brew状态
如果brew update仍报错,可先执行brew doctor检查环境问题,根据输出的提示进行修复,通常修复完SDK和头文件问题后brew也能恢复正常。
内容的提问来源于stack exchange,提问作者alexdlaird

