2017-02-28 81 views
2

面临PYSNMP 4.3.3的新问题。 Python 2.7.13.使用SNMP GET和Getnext: 与Pysnmp 4.3.2一样正常工作。 这个问题实际上我在观察它涉及到虚拟环境时。 在虚拟环境中,即使我将Pysnmp从4.3.3降级到4.3.2,问题也得到转载。PYSNMP:TypeError:setComponentByType()获得关键字参数'verifyConstraints'的多个值

有人能告诉我我失踪了什么吗?

类型错误:setComponentByType()得到了关键字参数多个值 'verifyConstraints'

>>> from pysnmp.hlapi import * 
>>> errorIndication, errorStatus, errorIndex, varBinds = next(
...  getCmd(SnmpEngine(), 
...   CommunityData('public'), 
...   UdpTransportTarget(('127.0.0.1', 161)), 
...   ContextData(), 
...   ObjectType(ObjectIdentity('SNMPv2-MIB','sysDescr', 0))) 
...) 
Traceback (most recent call last): 
    File "<stdin>", line 6, in <module> 
    File "/home/sourav/MyWorkSpace/tempproject_1/lib/python2.7/site-packages/pysnmp/hlapi/asyncore/sync/cmdgen.py", line 111, in getCmd 
    lookupMib=options.get('lookupMib', True))) 
    File "/home/sourav/MyWorkSpace/tempproject_1/lib/python2.7/site-packages/pysnmp/hlapi/asyncore/cmdgen.py", line 131, in getCmd 
    options.get('cbFun'), options.get('cbCtx')) 
    File "/home/sourav/MyWorkSpace/tempproject_1/lib/python2.7/site-packages/pysnmp/entity/rfc3413/cmdgen.py", line 214, in sendVarBinds 
    v2c.apiPDU.setVarBinds(reqPDU, varBinds) 
    File "/home/sourav/MyWorkSpace/tempproject_1/lib/python2.7/site-packages/pysnmp/proto/api/v1.py", line 136, in setVarBinds 
    varBindList.getComponentByPosition(idx), varBind 
    File "/home/sourav/MyWorkSpace/tempproject_1/lib/python2.7/site-packages/pysnmp/proto/api/v1.py", line 43, in setOIDVal 
    verifyConstraints=False) 
TypeError: setComponentByType() got multiple values for keyword argument 'verifyConstraints' 
>>> 

随着老款也一样:

>>> from pysnmp.entity.rfc3413.oneliner import cmdgen 
>>> cmdGen = cmdgen.CommandGenerator() 
>>> errorIndication, errorStatus, errorIndex, varBindTable = cmdGen.nextCmd(cmdgen.CommunityData('public'),cmdgen.UdpTransportTarget(('127.0.0.1', 161), timeout=60, retries=3),cmdgen.MibVariable('SNMPv2-MIB','sysDescr',0)) 

在链接波纹管请参考最后两点评论。 https://github.com/home-assistant/home-assistant/issues/5790

包使用:

appdirs==1.4.2 
packaging==16.8 
ply==3.10 
pyasn1==0.2.3 
pycryptodome==3.4.5 
pyparsing==2.1.10 
pysmi==0.0.7 
pysnmp==4.3.3 
six==1.10.0 

++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++ 更新: +++ ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++似乎 从pyasn1 == 0.2.3降级Pyasn1到0.1.9后的代码工作如常。但问题是,新鲜安装Pysnmp 4.3.3它采取Pyasn1 == 0.2.3及其失败。

回答

5

这是在pyasn1/pysnmp互动不幸的回归。

你可以修复由要么降级pyasn1到0.2.2或git master采取pysnmp或等待一点点,直到固定pysnmp出来。

+0

@illya Etingof非常感谢您的帮助,我们将等待修复并使用0.2.2。 – sbhatta

+0

pysnmp 4.3.4出来了! –

相关问题