Python RabbitMQ教程中遇到pika.exceptions.ProbableAuthenticationError

Python RabbitMQ教程中遇到pika.exceptions.ProbableAuthenticationError,python,rabbitmq,pika,Python,Rabbitmq,Pika,我正在尝试按照教程进行操作,并已将命令复制到以下脚本send.py: #!/usr/bin/env python import pika connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() channel.queue_declare(queue='hello') channel.basic_publish(exchange=''

我正在尝试按照教程进行操作,并已将命令复制到以下脚本
send.py

#!/usr/bin/env python
import pika

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

channel.queue_declare(queue='hello')

channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')
print(" [x] Sent 'Hello Wolrd!'")

connection.close()
但是,当我尝试运行此脚本时,会收到以下错误消息:

kurt@kurt-ThinkPad:~/Documents/Scratch$ python send.py
Traceback (most recent call last):
  File "send.py", line 4, in <module>
    connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
  File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 339, in __init__
    self._process_io_for_connection_setup()
  File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 374, in _process_io_for_connection_setup
    self._open_error_result.is_ready)
  File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 410, in _flush_output
    self._impl.ioloop.poll()
  File "/usr/local/lib/python2.7/dist-packages/pika/adapters/select_connection.py", line 602, in poll
    self._process_fd_events(fd_event_map, write_only)
  File "/usr/local/lib/python2.7/dist-packages/pika/adapters/select_connection.py", line 443, in _process_fd_events
    handler(fileno, events, write_only=write_only)
  File "/usr/local/lib/python2.7/dist-packages/pika/adapters/base_connection.py", line 364, in _handle_events
    self._handle_read()
  File "/usr/local/lib/python2.7/dist-packages/pika/adapters/base_connection.py", line 412, in _handle_read
    return self._handle_disconnect()
  File "/usr/local/lib/python2.7/dist-packages/pika/adapters/base_connection.py", line 288, in _handle_disconnect
    self._adapter_disconnect()
  File "/usr/local/lib/python2.7/dist-packages/pika/adapters/select_connection.py", line 95, in _adapter_disconnect
    super(SelectConnection, self)._adapter_disconnect()
  File "/usr/local/lib/python2.7/dist-packages/pika/adapters/base_connection.py", line 154, in _adapter_disconnect
    self._check_state_on_disconnect()
  File "/usr/local/lib/python2.7/dist-packages/pika/adapters/base_connection.py", line 173, in _check_state_on_disconnect
    raise exceptions.ProbableAuthenticationError
pika.exceptions.ProbableAuthenticationError
kurt@kurt-ThinkPad:~/Documents/Scratch$python send.py
回溯(最近一次呼叫最后一次):
文件“send.py”,第4行,在
connection=pika.BlockingConnection(pika.ConnectionParameters('localhost'))
文件“/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_-connection.py”,第339行,在__
self.\u进程\u io\u用于连接\u设置()
文件“/usr/local/lib/python2.7/dist packages/pika/adapters/blocking_connection.py”,第374行,用于连接设置的进程io
self.\u打开\u错误\u结果。准备好了吗)
文件“/usr/local/lib/python2.7/dist packages/pika/adapters/blocking_connection.py”,第410行,输入
self.\u impl.ioloop.poll()
文件“/usr/local/lib/python2.7/dist packages/pika/adapters/select_connection.py”,轮询中的第602行
self.\u进程\u fd\u事件(fd\u事件\u映射,仅写)
文件“/usr/local/lib/python2.7/dist packages/pika/adapters/select_connection.py”,第443行,in_process_fd_事件
处理程序(文件号、事件、仅写=仅写)
文件“/usr/local/lib/python2.7/dist-packages/pika/adapters/base\u connection.py”,第364行,in\u handle\u事件
self.\u handle\u read()
文件“/usr/local/lib/python2.7/dist-packages/pika/adapters/base\u connection.py”,第412行,在“句柄”中读取
返回自我。\处理\断开连接()
文件“/usr/local/lib/python2.7/dist-packages/pika/adapters/base\u-connection.py”,第288行,in\u-handle\u-disconnect
自。_适配器_断开()
文件“/usr/local/lib/python2.7/dist packages/pika/adapters/select_connection.py”,第95行,在适配器断开连接中
超级(选择连接,自连接)。\u适配器\u断开连接()
文件“/usr/local/lib/python2.7/dist packages/pika/adapters/base\u connection.py”,第154行,在适配器断开连接时
self.\u检查\u状态\u断开连接()
文件“/usr/local/lib/python2.7/dist-packages/pika/adapters/base\u connection.py”,第173行,处于断开连接状态
引发异常。ProbableAuthenticationError
pika.exceptions.ProbableAuthenticationError

从我在中读到的内容来看,这是因为从RabbitMQ 3.3开始,
guest/guest
username/password组合只能在本地使用。但是,解决问题的说明对我来说并不完全清楚。如何调整脚本以创建新用户(或使其以任何其他方式工作)?

尝试将:
pika.ConnectionParameters('localhost')
更改为
pika.URLParameters('amqp://guest:guest@localhost/%2f”)
,我仍然收到一个
ProbableAuthenticationError
。我无法重现您的问题。你在用不同的机器吗?几天前,我在和同样的东西战斗。不确定我们的情况是否完全相同,但我最终以python客户端的身份切换到amqpstorm,我的问题就消失了。他们的存储库中也有很好的示例。YMMV您是否已绑定使用rabbitmq web ui(管理插件)创建新用户?如果没有,请尝试在示例中使用这些凭据(请记住为新创建的用户设置权限)。