我有两个MIB2文件,MIB1和MIB2,MIB2正在从MIB1导入元素。我已经运行了smilint和build-pysnmp-mib,实际上是smidump,因为我不能使用build-pysnmp-mib预加载导出元素的文件。
对于smidump,我有两个MIB1.py模块,MIB1.py和MIB2.py,但是当我编写我的.py代理时,pysnmp无法找到MIB1.py导出模块。我得到了这个错误
Traceback (most recent call last):
File "snmpagent.py", line 165, in <module>
agent = SNMPAgent(objects)
File "snmpagent.py", line 90, in __init__
mibObject.objectType)
File "/usr/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 299, in importSymbols
self.loadModules(modName, **userCtx)
File "/usr/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 259, in loadModules
'MIB module \"%s\" load error: %s' % (modPath, traceback.format_exception(*sys.exc_info()))
pysnmp.smi.error.SmiError: MIB module "./MIB2.py" load error: ['Traceback (most recent call last):\n', ' File "/usr/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 255, in loadModules\n exec(modData, g)\n', ' File "<string>", line 17, in <module>\n', ' File "/usr/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 302, in importSymbols\n \'No module %s loaded at %s\' % (modName, self)\n', 'SmiError: No module MIB1 loaded at <pysnmp.smi.builder.MibBuilder instance at 0x7f99213c0b48>\n']我已经尝试过更新SMIPATH,也尝试使用以下命令手动加载.py模块
mibPath = mibBuilder.getMibSources() + (builder.DirMibSource('path'),)
mibBuilder.setMibSources(*mibPath)
mibBuilder.loadModules(
'MIB1',
)我在Ubuntu 14.04和Python 2.7.6上运行pysnmp。
有人能帮我解决这个问题吗?
发布于 2016-03-18 16:57:58
请使用pysmi包中的mibdump.py工具将ASN.1MIB编译成Python/pysnmp模块。该工具将处理所有依赖项,并生成更好的MIB。生成的MIB向后兼容所有以前的pysnmp版本。pysmi包开箱即用地在Python2&3上运行。
从pysnmp 4.3开始,不需要显式的ASN.1MIB编译步骤-- pysnmp 4.3+会自动调用pysmi来查找/下载/编译ASN.1MIB并将其移交给pysnmp。
尽可能升级到最新的pysnmp总是更好的。
https://stackoverflow.com/questions/36071901
复制相似问题