Я получаю сообщение об ошибке с помощью 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
И теперь все работает как положено.