Я пытаюсь использовать файлы MIB в PySNMP. Код довольно прост. Ничего сложного. Просто пытаюсь получить информацию под OID. Код, который я использую, выглядит следующим образом:
#!/usr/local/bin/python2.7
from pysnmp.smi import builder, view, error
from pysnmp.entity.rfc3413.oneliner import cmdgen
cmdGen = cmdgen.CommandGenerator()
mibBuilder = builder.MibBuilder()
mibPath = mibBuilder.getMibPath() + ( '/path/to/command/mibs', )
mibBuilder.setMibPath( *mibPath )
mibBuilder.loadModules(
'MIB-File',
)
mibView = view.MibViewController( mibBuilder )
errorIndication, errorStatus, errorIndex, \
varBindTable = cmdGen.nextCmd(
cmdgen.CommunityData( 'Name', 'Community' ),
cmdgen.UdpTransportTarget( ( 'IP Address', 161 ) ),
( ( '', 'serverName' ), ),
)
print varBindTable
Я знаю, что данные, введенные в это, точны, так как когда я использую asynCommandGenerator.asyncNextCmd
, используя те же udpTransportTarget
и CommunityData
, это работает без проблем. Кроме того, ошибка, которую я вижу, очень специфична для компонентов MibBuilder.
Ошибка, которую я вижу:
Traceback (последний вызов был последним):
Файл "./snmpcollectortest.py", строка 11, в
NS-MIB-SMIv2 ',
Файл "/usr/lib/python2.7/site-packages/pysnmp-4.2.1-py2.7.egg/pysnmp/smi/builder.py", строка 221, в loadModules
pysnmp.smi.error.SmiError: модуль MIB "/path/to/command/mibs/MIB-File.py" ошибка загрузки: файл MIB "ASN1.py [co]" не найден в пути поиска
Обновление:
Я обнаружил, что у меня не установлен M2Crypto, поэтому я не смог найти ASN1.py. Однако я исправил это, и я все еще получаю ту же ошибку.