找出我的问题。
之前我从 App Store (11.7) 安装了 XCode 并将其 SDK 设置为我的默认值:
sudo xcode-select --switch /Applications/Xcode.app/
但是,它似乎带有不受支持的 clang 版本:
λ clang --version
Apple clang version 11.0.3 (clang-1103.0.32.62)
Target: x86_64-apple-darwin20.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
通过以下方式将xcode-select 设置为最新版本:
sudo xcode-select --switch /Library/Developer/CommandLineTools
编辑(2020 年 11 月 15 日)
尝试上述更改时,您可能会收到错误消息:
xcode-select: error: invalid developer directory '/Library/Developer/CommandLineTools'
要解决此问题,您必须从 Apple 官方网站 here 安装最新的命令行工具。在编写此编辑时,我安装了 Xcode 12.3 beta 的命令行工具。
将clang 更改为工作版本:
λ clang --version
Apple clang version 12.0.0 (clang-1200.0.32.2)
Target: x86_64-apple-darwin20.1.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
内置的 Big Sur SDK 版本为10.15,似乎可以正常工作:
λ ls /Library/Developer/CommandLineTools/SDKs
MacOSX.sdk MacOSX10.15.sdk
切换后multidict安装成功。
λ pip install multidict
Collecting multidict
Downloading multidict-4.7.6-cp38-cp38-macosx_10_14_x86_64.whl (48 kB)
|████████████████████████████████| 48 kB 589 kB/s
Installing collected packages: multidict
Successfully installed multidict-4.7.6
进一步调查似乎表明这是 Apple (source) 的设计选择:
因此,确保您的 SDK 是开箱即用的默认 SDK,而不是 XCode 的新 SDK,应该足以让系统在需要时切换上下文(并且似乎可以与 pip+clang 配合使用) .