Python 到127.0.0.1:5672的RabbitMq连接失败

Python 到127.0.0.1:5672的RabbitMq连接失败,python,rabbitmq,pika,Python,Rabbitmq,Pika,我目前正在学习rabbitmq教程,遇到了一个问题。无论我多么接近教程,在尝试运行send.py和receive.py时,我总是会遇到以下错误: pika.exceptions.ConnectionClosed: Connection to 127.0.0.1:5672 failed: [Errno 61] Connection refused #!/usr/bin/env python import pika connection = pika.BlockingConnection(pik

我目前正在学习rabbitmq教程,遇到了一个问题。无论我多么接近教程,在尝试运行send.py和receive.py时,我总是会遇到以下错误:

pika.exceptions.ConnectionClosed: Connection to 127.0.0.1:5672 failed: [Errno 61] Connection refused
#!/usr/bin/env python
import pika

connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()

channel.queue_declare(queue='hello')

def callback(ch, method, properties, body):
    print(" [x] Received %r" % body)

channel.basic_consume(callback,
                      queue='hello',
                      no_ack=True)

print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
这是send.py文件:

#!/usr/bin/env python
import pika

connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()

channel.queue_declare(queue='hello')

channel.basic_publish(exchange='',
                      routing_key='hello',
                      body='Hello World!')
print(" [x] Sent 'Hello World!'")
connection.close()
这是receive.py:

pika.exceptions.ConnectionClosed: Connection to 127.0.0.1:5672 failed: [Errno 61] Connection refused
#!/usr/bin/env python
import pika

connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()

channel.queue_declare(queue='hello')

def callback(ch, method, properties, body):
    print(" [x] Received %r" % body)

channel.basic_consume(callback,
                      queue='hello',
                      no_ack=True)

print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()

我一辈子都搞不清楚我做错了什么。我看过这里的其他帖子,它们问了一个类似的问题,但仍然没有骰子。

你是在用docker运行rabbitmq吗?如果是,我建议您仔细检查端口绑定。例如:-p 5672:5672

我使用了与之相同的教程,他们确实错过了安装和运行rabbitmq的依赖关系


执行
brew安装rabbitmq
后,然后
brew服务启动rabbitmq
连接到Pika上的localhost,然后工作如果您使用docker运行rabbitmq并遵循教程和docker页()中的说明,则可能会遇到此问题。当您在未指定端口映射选项(“-p”)的情况下运行容器时,端口绑定将仅在容器内有效。您可以在容器中执行“docker exec”,然后运行netstat进行验证。
因此,您要做的是重新启动rabbitmq容器并指定端口映射。例子:
docker run-d——主机名我的兔子——说出一些兔子的名字——p 5672:5672 rabbitmq:latest

我正在使用的教程没有提到任何关于使用docker的内容。所以我不知道。当我使用docker在本地运行rabbit时,我遇到了同样的问题:是的,这似乎是一个相当难以捉摸的问题。至少对我来说。您是否已使用
/etc/init.d/rabbitmq-server status
检查了服务器的状态?您是否已在桌面上安装并运行了rabbitmq服务器?我不知道为什么之前未对此进行标记-对我有效!我删除了我的“somerabbit”容器,执行了这个命令,并在python代码5672中更改了端口。答对 了