当我使用:
build-pysnmp-mib -o iSCSI_RAID_Rack-1.2.1.py iSCSI_RAID_Rack-1.2.1.mib
要将 .mib 文件转换为 .py 文件,它会毫无错误地进行转换。当我尝试在 python 上加载文件时,出现以下错误:
错误:
“NameError:名称'MibScalar'未定义
完整错误:
文件“C:\Python27\lib\site-packages\pysnmp\smi\builder.py”,第 259 行,在 loadModules 'MIB 模块 \"%s\" 中加载错误:%s' % (modPath, traceback.format_exception( *sys.exc_info())) SmiError: MIB module "C:\Python27\snmp\MIB\iSCSI_RAID_Rack-1.2.1.pyc" 加载错误: ['Traceback (last last最近调用):\n', ' File " C:\Python27\lib\site-packages\pysnmp\smi\builder.py",第 255 行,在 loadModules\n exec(modData, g)\n', ' 文件 "C:\Python27\snmp\MIB\iSCSI_RAID_Rack -1.2.1.py",第 27 行,在 \n sys_status_temp = MibScalar((1, 3, 6, 1, 4, 1, 22274, 1, 1, 1, 2), DisplayString()).setMaxAccess(" readonly").setLabel("sys-status-temp")\n', "NameError: name 'MibScalar' is not defined\n"]
代码:
def addFile(dir, file):
mibBuilder = cmdGen.snmpEngine.msgAndPduDsp.mibInstrumController.mibBuilder
mibSources = mibBuilder.getMibSources() + (
builder.DirMibSource(dir),
)
mibBuilder.setMibSources(*mibSources)
mibBuilder.loadModules(file)