无法从 Python 连接到 RabbitMQ

Could not connect to RabbitMQ from Python

我正在学习 Python 并且我 运行 遇到了奇怪的问题。我在我的 macOS Sierra 本地机器上 运行ning RabitMQ。从 python 脚本连接到 RabbitMQ 服务器总是失败并出现套接字超时错误。同时我可以通过 telnet 连接。 运行 Python 2.7 和库 kombu:

# test.py
from kombu import Connection

connection = Connection('amqp://127.0.0.1')
connection.connect()

结果:

Thunderstorm:test max$ python test.py
Traceback (most recent call last):
  File "test.py", line 6, in <module>
    connection.connect()
  File "/Library/Python/2.7/site-packages/kombu/connection.py", line 261, in connect
    return self.connection
  File "/Library/Python/2.7/site-packages/kombu/connection.py", line 802, in connection
    self._connection = self._establish_connection()
  File "/Library/Python/2.7/site-packages/kombu/connection.py", line 757, in _establish_connection
    conn = self.transport.establish_connection()
  File "/Library/Python/2.7/site-packages/kombu/transport/pyamqp.py", line 130, in establish_connection
    conn.connect()
  File "/Library/Python/2.7/site-packages/amqp/connection.py", line 300, in connect
    self.drain_events(timeout=self.connect_timeout)
  File "/Library/Python/2.7/site-packages/amqp/connection.py", line 464, in drain_events
    return self.blocking_read(timeout)
  File "/Library/Python/2.7/site-packages/amqp/connection.py", line 468, in blocking_read
    frame = self.transport.read_frame()
  File "/Library/Python/2.7/site-packages/amqp/transport.py", line 237, in read_frame
    frame_header = read(7, True)
  File "/Library/Python/2.7/site-packages/amqp/transport.py", line 377, in _read
    s = recv(n - len(rbuf))
socket.timeout: timed out

需要几秒钟,returns 超时。此时我在 RabbitMq 日志中看到:

=INFO REPORT==== 1-Mar-2017::12:25:00 ===
accepting AMQP connection <0.23773.4> (127.0.0.1:60600 -> 127.0.0.1:5672)

=WARNING REPORT==== 1-Mar-2017::12:25:08 ===
closing AMQP connection <0.23773.4> (127.0.0.1:60600 -> 127.0.0.1:5672):
client unexpectedly closed TCP connection

防火墙已关闭。 Telnet 连接成功:

Thunderstorm:test max$ telnet 127.0.0.1 5672
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

如何调试这个问题?

通过增加默认连接超时解决了这个问题

Connection('amqp://127.0.0.1/', connect_timeout=15)