Python -> AttributeError: объект «модуль» не имеет атрибута «основной»

Я работаю над Raspberry Pi 3 и пытаюсь визуализировать некоторые значения датчиков на Munin. Я использую Python для выполнения скриптов на Munin. Я нашел скрипт для тестирования и пытаюсь его выполнить, но получаю следующую ошибку:

Трассировка (последний последний вызов):
Файл cpu_field, строка 23, в munin.main() AttributeError: объект 'module' не имеет атрибута 'main'

Это скрипт: https://github.com/CooledCoffee/python-munin/ Конечно, я добавил в начале:

!/usr/bin/окружение Python

Но чего я не понял, так это того, что другие скрипты работают так: https://gist.github.com/tomoconnor/813813


person DjibTgy    schedule 02.12.2016    source источник


Ответы (2)


Было бы неплохо, если бы вы также добавили код в вопрос.

В любом случае. Используемый вами python-munin совершенно другой и не предоставляет функции main() (как она вызывается в строке 23). Имена для модулей Python не защищены, и «munin» — очевидный выбор, используемый более чем одним разработчиком. Первый скрипт должен работать с модулем, который вы получаете.

pip install python-munin

Другой скрипт использует этот модуль python-munin, и вы, вероятно, получите его непосредственно из репозитория git. Они не совместимы.

person Christoph Bluoss    schedule 02.12.2016
comment
нет ни правильного/ложного кода. вы должны решить, какой модуль вы хотите использовать, и написать/использовать для него соответствующий код. Вы не можете смешать это, как вы сделали. - person Christoph Bluoss; 02.12.2016

Итак, это код, который я использую:

> #!/usr/bin/env python
> 
> import munin
> 
> category = 'system' fields = [
>     'load1',
>     'load5',
>     'load15', ] vlabel = 'load'
> 
> def values():
>     with open('/proc/loadavg') as f:
>         data = f.read()
>     load1, load5, load15 = [float(s) for s in data.split()[:3]]
>     return {
>         'load1': load1,
>         'load5': load5,
>         'load15': load15,
>     }
> 
> if __name__ == '__main__':
>     munin.main()

Это ответ, который я получил с sudo python xxx, я получил тот же ответ с sudo munin-run xxx:

   pi@dex:/etc/munin/plugins $ sudo python first
    Traceback (most recent call last):
      File "first", line 24, in <module>
        munin.main()
    AttributeError: 'module' object has no attribute 'main'

Я думаю, вы правы, потому что, когда я установил munin с помощью

pip install python-munin

это сработало. Но затем я установил этот модуль python-munin, и он больше не работал. Я удалил папку python-munin, но все равно получил ту же ошибку. Как правильно удалить предыдущую папку?

person DjibTgy    schedule 02.12.2016