Я получаю сообщение об ошибке с помощью easysnmp по очень простому запросу следующего содержания: «NameError: имя 'interface' не определено»

У меня есть очень простой тестовый код для тестирования easysnmp на MacOS. Вот код:

      # test.py

from easysnmp import Session
session = Session(hostname='localhost', community='public', version=2)

Это приводит к следующему сообщению об ошибке:

      $ python test.py 
Traceback (most recent call last):
  File "/Users/me/python_utsc/test.py", line 9, in <module>
    session = Session(hostname='localhost', community='public', version=2)
  File "/Users/me/python_utsc/.venv/lib/python3.9/site-packages/easysnmp/session.py", line 280, in __init__
    self.sess_ptr = interface.session(
NameError: name 'interface' is not defined

Я запускаю это на Mac v11.6 в venv. Я установил easysnmp, используя следующие библиотеки:

pip install easysnmp

pip installgit + https: //github.com/kamakazikamikaze/easysnmp.git

pip installgit + https: //github.com/nerosketch/easysnmp.git

Все дают одинаковый результат.

Версия Python:

      (.venv) mbp:$ python -V
Python 3.9.7

Кто-нибудь еще сталкивался с этой ошибкой? Я не нашел результатов поиска по этому поводу. Я удивлен, что не могу создать сеанс, не говоря уже о выполнении каких-либо операций получения, установки или обхода без этой ошибки.

Спасибо заранее за ваш вклад.

1 ответ

Так что ошибка не имеет отношения к Mac OS. Он был создан из-за установленной более старой версии NET-SNMP:

      $ snmpget --version
NET-SNMP version: 5.6.2.1

EasySNMP требует (я полагаю) NET-SNMP v5.7 или выше.

После запуска brew install net-snmp это обновило версию до следующего:

      snmpget --version
NET-SNMP version: 5.9.1

И теперь все работает как положено.

Другие вопросы по тегам