我从pysnmp页面获得以下示例:
    #GET命令生成器
    从pysnmp.entity.rfc3413.oneliner导入cmdgen

errorIndication, errorStatus, \
                 errorIndex, varBinds = cmdgen.CommandGenerator().getCmd(
    # SNMP v1
#    cmdgen.CommunityData('test-agent', 'public', 0),
    # SNMP v2
    cmdgen.CommunityData('test-agent', 'public'),
    # SNMP v3
#    cmdgen.UsmUserData('test-user', 'authkey1', 'privkey1'),
    cmdgen.UdpTransportTarget(('localhost', 161)),
    # Plain OID
    (1,3,6,1,2,1,1,1,0),
    # ((mib-name, mib-symbol), instance-id)
    (('SNMPv2-MIB', 'sysDescr'), 0)
    )

if errorIndication:
    print errorIndication
else:
    if errorStatus:
        print '%s at %s\n' % (
            errorStatus.prettyPrint(),
            errorIndex and varBinds[int(errorIndex)-1] or '?'
            )
    else:
        for name, val in varBinds:
            print '%s = %s' % (name.prettyPrint(), val.prettyPrint())


我确保SNMP在我的计算机上运行。我使用以下命令在控制台中进行了检查:

snmpget -v2c -Cf -c public localhost 1.3.6.1.2.1.1.1.0


哪个工作正常。
如果我执行上述python代码,则会出现以下错误:

SmiError: MIB module "pysnmp/smi/mibs/SNMP-COMMUNITY-MIB.py" load error: MIB module "pysnmp/smi/mibs/SNMP-FRAMEWORK-MIB.py" load error: Bad OctetString initializer '[128, 0, 79, 184, 5, 192, 168, 1, 50, 371, 210, 26, 162, 157]'


最后的数字随着每次执行而变化(似乎是时间戳或类似的东西)。
我正在使用python 2.7和pySNMP(4.2.1)的最新版本。
有人知道这个示例代码有什么问题吗?

最佳答案

这是pysnmp 4.2.1中的一个错误,该错误已修复为最新的pysnmp候选版本(由于某些原因,该错误似乎在Mac上更频繁地发生)。

这是当前最新rc的链接:

http://sourceforge.net/projects/pysnmp/files/pysnmp/4.2.2/pysnmp-4.2.2rc5.tar.gz/download

-伊利亚

关于python - PySNMP:加载错误:错误的OctetString初始化程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8952686/

10-09 13:29