Есть ли какие-либо конфликты между использованием Pyenv и установкой справочного приложения VOLTTRON? - PullRequest
0 голосов
/ 12 ноября 2019

У меня чертовски много времени устанавливается справочное приложение Volttron, и я не могу понять, что я делаю неправильно.

Я использовал Pyenv дляуправлять одновременным запуском нескольких версий Volttron - я смог установить версии, в которых используется как Python 2.7.x (текущая ветка '1005 * master' ), так и версия, использующая Python 3.6.x ( ветвь 'volttron-7-preview' ), но у меня чертовски много времени работает над справочным приложением .

В частности, я могуCelery не может работать с VTN-сервером OpenADR ( инструкция по установке ), упомянутым в блокноте jupyter. Я следовал инструкциям к письму (за исключением шага 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 / ), кажется, не работает. Любые ссылки там тоже есть?)

Моя настройка: Использование текущего мастера Volttron (который использует Python 2.7) и текущего мастера Volttron-приложений ( link ) в Ubuntu 18.04 внутри VirtualBox;Версии 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...

1 Ответ

0 голосов
/ 25 ноября 2019

Я в конечном итоге смог решить эту проблему, если кто-то еще столкнется с той же проблемой. Похоже, что pyenv не мешает, и проблема была в RabbitMQ. В частности, я установил RabbitMQ как часть установки Volttron;но это означает, что вам нужно уметь разбираться в разделении портов и / или разрешений, если вы хотите также использовать RabbitMQ для OpenNR VTN-сервера (оказывается, что celery не удалось подключиться к серверу RabbitMQ, что очевидно, ноне супер понятно из приведенных выше сообщений об ошибках). Я переустановил Volttron, используя опцию ZeroMQ, которая эффективно разделяет их, и установка продолжилась.

...