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

Django项目启动Celery Worker报错:pycurl版本不匹配引发ImportError

Celery Worker启动失败:pycurl与libcurl版本不匹配问题解决

问题描述

  • 启动Django项目的Celery Worker时,报错:Unrecoverable error: ImportError('The curl client requires the pycurl library.')
  • 已确认pycurl安装成功(执行python -c 'import pycurl' && echo "Success"返回Success)
  • Kombu包回溯信息显示版本冲突:pycurl: libcurl link-time version (7.76.1) is older than compile-time version (7.86.0)
  • 本地通过brew安装了openssl@3和curl,但均为keg-only状态(未链接到系统路径)

解决方案

1. 配置环境变量,优先使用brew安装的curl和openssl

Mac自带的LibreSSL和旧版curl是导致版本冲突的根源,需让编译环境优先识别brew安装的版本:

# 临时配置(当前终端生效)
export PATH="/usr/local/opt/curl/bin:/usr/local/opt/openssl@3/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/curl/lib -L/usr/local/opt/openssl@3/lib"
export CPPFLAGS="-I/usr/local/opt/curl/include -I/usr/local/opt/openssl@3/include"
export PKG_CONFIG_PATH="/usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/openssl@3/lib/pkgconfig"

# 永久配置(写入bash_profile,重启终端生效)
echo 'export PATH="/usr/local/opt/curl/bin:/usr/local/opt/openssl@3/bin:$PATH"' >> ~/.bash_profile
echo 'export LDFLAGS="-L/usr/local/opt/curl/lib -L/usr/local/opt/openssl@3/lib"' >> ~/.bash_profile
echo 'export CPPFLAGS="-I/usr/local/opt/curl/include -I/usr/local/opt/openssl@3/include"' >> ~/.bash_profile
echo 'export PKG_CONFIG_PATH="/usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/openssl@3/lib/pkgconfig"' >> ~/.bash_profile

# 立即加载配置
source ~/.bash_profile

2. 重新编译安装pycurl

卸载现有pycurl,基于新的环境变量重新安装,确保链接到brew的curl:

pip uninstall -y pycurl
pip install pycurl --global-option="--with-curl=/usr/local/opt/curl"

3. 验证版本匹配

执行以下命令确认pycurl链接的curl版本与编译版本一致:

python -c "import pycurl; print(pycurl.version)"

输出应包含libcurl/7.86.0(而非系统自带的7.76.1)。

4. 重启Celery Worker

此时重新启动Celery Worker,版本冲突问题即可解决,ImportError不再触发。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 03:25:18