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

已安装kombu却无法导入Connection,如何向RabbitMQ发送AMQP1.0消息

错误原因
  • 你遇到的ImportError: cannot import name 'Connection' from 'kombu'通常由三类原因导致:
    1. 本地项目目录下存在名为kombu.py的文件/文件夹,和官方库重名,Python优先导入了本地文件
    2. 安装的kombu版本过旧,或者安装过程中文件损坏
    3. 你需要使用AMQP 1.0协议,但缺少kombu对应依赖,导致相关组件加载失败
修复步骤
  • 第一步:排查本地重名文件
    检查你的代码运行目录下有没有名为kombu.py的文件,或者__pycache__目录下有没有kombu相关的缓存文件,如有请删除或者重命名。
  • 第二步:重装升级依赖
    依次执行以下命令升级kombu,同时安装AMQP 1.0协议所需的依赖包:
    pip install --upgrade kombu
    pip install python-qpid-proton
    
  • 第三步:开启RabbitMQ的AMQP 1.0支持
    在RabbitMQ服务端执行命令开启对应插件,否则服务端无法识别AMQP 1.0协议的请求:
    rabbitmq-plugins enable rabbitmq_amqp1_0
    
  • 第四步:修正你的代码
    你原有代码存在变量名笔误(定义的是tasks_queue,后续调用用了control_queue),修正后的可用代码如下:
    from kombu import Connection
    
    # 替换为你实际的AMQP连接地址,格式为 amqp://用户名:密码@主机地址:端口/虚拟主机
    with Connection('amqp://your_amqp_url') as conn:
        control_queue = conn.SimpleQueue('queuename')
        message = {"key": "value"} # 替换为你实际的JSON格式消息
        control_queue.put(message)
        control_queue.close()
    
额外说明

如果还是遇到连接报错,可确认你的AMQP连接地址格式是否正确,RabbitMQ对应端口是否开放,账号是否有队列的读写权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:45:00