我在安装Volttron参考应用程序时遇到了一段很痛苦的时间,我不知道我到底做错了什么。
我一直在使用Pyenv来管理同时运行多个版本的Volttron --我已经能够安装使用Python2.7.x( current 'master' branch)的版本和使用Python3.6.x( 'volttron-7-preview' branch)的版本,但是让Reference Application启动并运行起来实在是太痛苦了。
具体来说,我无法让Celery很好地使用jupyter笔记本中提到的OpenADR VTN服务器(installation instructions)。我已经完全按照说明进行了操作(除了rabbit mq步骤,因为它是作为Volttron的一部分安装的,然后会以不同的方式安装两次),并且我一直确保直接链接到Python (3.6.9)的特定版本,以避免pyenv的任何奇怪之处,但是当我运行这个命令时
celery -A openadr worker -B
我得到了这个错误:
[2019-11-05 16:23:02,570: ERROR/Beat] Process Beat
Traceback (most recent call last):
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/kombu/utils/objects.py", line 42, in __get__
return obj.__dict__[self.__name__]
KeyError: 'producer'在尝试处理上面的异常时,在抛出一些额外的错误后,它就会死掉(在底部,因为它有点长)。
有人对我可能做错了什么有什么建议吗?
(另外:我听说有一个Slack频道,但注册链接(https://volttron-community.signup.team/)似乎坏了。那里也有链接吗?)
我的设置:在VirtualBox中的Ubuntu18.04上使用当前的Volttron主机(使用Python2.7)和当前的Volttron应用程序主机(link);Python版本由pyenv管理。
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/billiard/process.py", line 327, in _bootstrap
self.run()
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/celery/beat.py", line 634, in run
self.service.start(embedded_process=True)
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/celery/beat.py", line 558, in start
interval = self.scheduler.tick()
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/celery/beat.py", line 279, in tick
self.apply_entry(entry, producer=self.producer)
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/kombu/utils/objects.py", line 44, in __get__
value = obj.__dict__[self.__name__] = self.__get(obj)
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/celery/beat.py", line 411, in producer
return self.Producer(self._ensure_connected(), auto_declare=False)
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/celery/beat.py", line 395, in _ensure_connected
_error_handler, self.app.conf.broker_connection_max_retries
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/kombu/connection.py", line 405, in ensure_connection
callback)
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/kombu/utils/functional.py", line 333, in retry_over_time
return fun(*args, **kwargs)
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/kombu/connection.py", line 261, in connect
return self.connection
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/kombu/connection.py", line 802, in connection
self._connection = self._establish_connection()
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/kombu/connection.py", line 757, in _establish_connection
conn = self.transport.establish_connection()
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/kombu/transport/pyamqp.py", line 130, in establish_connection
conn.connect()
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/amqp/connection.py", line 288, in connect
self.drain_events(timeout=self.connect_timeout)
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/amqp/connection.py", line 471, in drain_events
while not self.blocking_read(timeout):
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/amqp/connection.py", line 477, in blocking_read
return self.on_inbound_frame(frame)
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/amqp/method_framing.py", line 55, in on_frame
callback(channel, method_sig, buf, None)
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/amqp/connection.py", line 481, in on_inbound_method
method_sig, payload, content,
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/amqp/abstract_channel.py", line 128, in dispatch_method
listener(*args)
File "~/.virtualenvs/openadr/lib/python3.6/site-packages/amqp/connection.py", line 368, in _on_start
b", ".join(self.mechanisms).decode()))
amqp.exceptions.ConnectionError: Couldn't find appropriate auth mechanism (can offer: AMQPLAIN, PLAIN; available: )
[2019-11-11 13:41:24,210: WARNING/Beat] Process Beat:
[2019-11-11 13:41:24,211: WARNING/Beat] Traceback (most recent call last):
[2019-11-11 13:41:24,211: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/kombu/utils/objects.py", line 42, in __get__
return obj.__dict__[self.__name__]
[2019-11-11 13:41:24,211: WARNING/Beat] KeyError: 'producer'
[2019-11-11 13:41:24,212: WARNING/Beat] During handling of the above exception, another exception occurred:
[2019-11-11 13:41:24,212: WARNING/Beat] Traceback (most recent call last):
[2019-11-11 13:41:24,212: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/billiard/process.py", line 327, in _bootstrap
self.run()
[2019-11-11 13:41:24,212: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/celery/beat.py", line 634, in run
self.service.start(embedded_process=True)
[2019-11-11 13:41:24,212: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/celery/beat.py", line 558, in start
interval = self.scheduler.tick()
[2019-11-11 13:41:24,212: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/celery/beat.py", line 279, in tick
self.apply_entry(entry, producer=self.producer)
[2019-11-11 13:41:24,213: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/kombu/utils/objects.py", line 44, in __get__
value = obj.__dict__[self.__name__] = self.__get(obj)
[2019-11-11 13:41:24,213: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/celery/beat.py", line 411, in producer
return self.Producer(self._ensure_connected(), auto_declare=False)
[2019-11-11 13:41:24,213: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/celery/beat.py", line 395, in _ensure_connected
_error_handler, self.app.conf.broker_connection_max_retries
[2019-11-11 13:41:24,213: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/kombu/connection.py", line 405, in ensure_connection
callback)
[2019-11-11 13:41:24,213: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/kombu/utils/functional.py", line 333, in retry_over_time
return fun(*args, **kwargs)
[2019-11-11 13:41:24,213: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/kombu/connection.py", line 261, in connect
return self.connection
[2019-11-11 13:41:24,214: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/kombu/connection.py", line 802, in connection
self._connection = self._establish_connection()
[2019-11-11 13:41:24,214: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/kombu/connection.py", line 757, in _establish_connection
conn = self.transport.establish_connection()
[2019-11-11 13:41:24,214: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/kombu/transport/pyamqp.py", line 130, in establish_connection
conn.connect()
[2019-11-11 13:41:24,214: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/amqp/connection.py", line 288, in connect
self.drain_events(timeout=self.connect_timeout)
[2019-11-11 13:41:24,214: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/amqp/connection.py", line 471, in drain_events
while not self.blocking_read(timeout):
[2019-11-11 13:41:24,214: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/amqp/connection.py", line 477, in blocking_read
return self.on_inbound_frame(frame)
[2019-11-11 13:41:24,214: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/amqp/method_framing.py", line 55, in on_frame
callback(channel, method_sig, buf, None)
[2019-11-11 13:41:24,215: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/amqp/connection.py", line 481, in on_inbound_method
method_sig, payload, content,
[2019-11-11 13:41:24,215: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/amqp/abstract_channel.py", line 128, in dispatch_method
listener(*args)
[2019-11-11 13:41:24,215: WARNING/Beat] File "~/.virtualenvs/openadr/lib/python3.6/site-packages/amqp/connection.py", line 368, in _on_start
b", ".join(self.mechanisms).decode()))
[2019-11-11 13:41:24,215: WARNING/Beat] amqp.exceptions.ConnectionError: Couldn't find appropriate auth mechanism (can offer: AMQPLAIN, PLAIN; available: )
[2019-11-11 13:41:24,419: ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@localhost:5672//: Couldn't find appropriate auth mechanism (can offer: AMQPLAIN, PLAIN; available: ).
Trying to reconnect...发布于 2019-11-26 02:12:34
我最终能够解决这个问题,以防其他人遇到同样的问题。看起来pyenv没有干预,问题出在RabbitMQ上。具体地说,我已经安装了RabbitMQ作为Volttron安装的一部分;但这意味着如果您还想将RabbitMQ用于OpenADR VTN服务器,那么您必须巧妙地分离端口和/或权限(结果是celery在连接到RabbitMQ服务器时失败,这一点很明显,但从上面的错误消息中看不出来)。我使用ZeroMQ选项重新安装了Volttron,它有效地将两者分开,并继续安装。
https://stackoverflow.com/questions/58810364
复制相似问题