【问题标题】:TypeError got multiple values for keyword argument queueTypeError 为关键字参数队列获取了多个值
【发布时间】:2020-06-24 09:56:35
【问题描述】:

我被这个错误困住了,我无法修复。我找到了相关案例,但我很难将其应用于我自己的问题。 有人可以帮助我理解为什么会发生这种 Typerror 和/或帮助我找到解决方案吗? (初学者请回复我)

我在树莓派和 pika 1.1.0 中使用 python。

这是我的回溯:

  File "amqp.py", line 33, in <module>
    no_ack=True)
TypeError: basic_consume() got multiple values for keyword argument 'queue

这是我认为的相关代码:

def callback(ch, method, properties, body):

    printer.inverseOn()
    printer.println(' ' + '{:<31}'.format("TXT MESSAGE"))
    printer.inverseOff()

    printer.println(body)
    printer.feed(3)

    print("complete")
    print " [x] Received %r" % (body)

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

如果有趣的话,这就是 .py 的其余部分

try:
    from urllib.parse import urlparse
except ImportError:
    from urlparse import urlparse
import pika, os, sys
from Adafruit_Thermal import *

printer = Adafruit_Thermal("/dev/serial0", 19200, timeout=5)

url_str = os.environ.get('CLOUDAMQP_URL','amqp://xxxxx')
url = urlparse(url_str)
params = pika.ConnectionParameters(host=url.hostname, virtual_host=url.path[1:],
    credentials=pika.PlainCredentials(url.username, url.password))

connection = pika.BlockingConnection(params)
channel = connection.channel()
channel.queue_declare(queue='texts')

def callback(ch, method, properties, body):

    printer.inverseOn()
    printer.println(' ' + '{:<31}'.format("TXT MESSAGE"))
    printer.inverseOff()

    printer.println(body)
    printer.feed(3)

    print("complete")
    print " [x] Received %r" % (body)

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

try:

    channel.start_consuming()

except KeyboardInterrupt:

    print "Break detected"
    channel.stop_consuming()

connection.close()

sys.exit()

【问题讨论】:

    标签: python raspberry-pi iot


    【解决方案1】:

    不确定您使用的是哪个鼠兔版本;但根据[1],回调参数是第二个。队列参数是第一个。即

    channel.basic_consume("texts", callback, no_ack=True)

    [1] - https://pika.readthedocs.io/en/stable/modules/adapters/blocking.html#pika.adapters.blocking_connection.BlockingChannel

    【讨论】:

      猜你喜欢
      • 2016-04-25
      • 1970-01-01
      • 2017-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-28
      相关资源
      最近更新 更多