macOS 10.15安装pycurl报architecture not supported错误如何解决?
问题原因
- 架构报错:macOS Catalina默认编译配置会尝试同时适配x86_64和arm64架构,但你当前环境是纯x86_64架构,多架构编译触发不支持报错
- SSL后端不匹配:pycurl 7.44.1的默认编译脚本无法自动识别macOS原生libcurl使用的Secure Transport SSL后端,未指定参数时会按无SSL后端编译,运行时链接带Secure Transport的系统libcurl就会触发ImportError
解决步骤
- 先卸载已安装的异常pycurl版本
pip uninstall -y pycurl - 确认系统libcurl的SSL后端,运行以下命令后输出内容需包含
SecureTransport字样curl -V - 带正确参数编译安装pycurl 7.44.1
ARCHFLAGS="-arch x86_64" pip install --compile --install-option="--with-secure-transport" pycurl==7.44.1 - 验证安装是否成功,运行后正常输出版本号即为修复完成
python -c "import pycurl; print(pycurl.version)"
备选方案(上述步骤失败时使用,需提前安装Homebrew)
- 先通过Homebrew安装适配当前架构的libcurl
brew install curl - 指定使用Homebrew安装的libcurl配置编译pycurl
ARCHFLAGS="-arch x86_64" PYCURL_CURL_CONFIG=/usr/local/opt/curl/bin/curl-config pip install pycurl==7.44.1
注意事项
- 不要混用系统原生libcurl和Homebrew安装的libcurl的编译参数,全程仅使用同一来源的libcurl即可避免不兼容问题
- 若使用pyenv、venv等虚拟环境管理工具,安装前需确认当前激活的Python版本为目标3.8.2版本,避免安装到其他Python环境
- 安装过程中提示头文件缺失时,先运行
xcode-select --install安装Xcode命令行工具后重试
内容的提问来源于stack exchange,提问作者Zak44
相关产品推荐
相关产品推荐

