Python 2.7 PYSNMP:TypeError:setComponentByType()为关键字参数';验证约束条件';

Python 2.7 PYSNMP:TypeError:setComponentByType()为关键字参数';验证约束条件';,python-2.7,snmp,pysnmp,Python 2.7,Snmp,Pysnmp,PYSNMP 4.3.3面临新问题。Python 2.7.13.1使用SNMP GET和Getnext: Pysnmp 4.3.2也可以正常工作。 当涉及虚拟环境时,我实际上观察到了这个问题。 在虚拟环境中,即使我将Pysnmp从4.3.3降级到4.3.2,问题也会重现 有人能告诉我我错过了什么吗 TypeError:setComponentByType()为关键字参数“verifyConstraints”获取了多个值。 >>> from pysnmp.hlapi import

PYSNMP 4.3.3面临新问题。Python 2.7.13.1使用SNMP GET和Getnext: Pysnmp 4.3.2也可以正常工作。 当涉及虚拟环境时,我实际上观察到了这个问题。 在虚拟环境中,即使我将Pysnmp从4.3.3降级到4.3.2,问题也会重现

有人能告诉我我错过了什么吗

TypeError: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'
>>> 
在下面的链接中,请参考最后两条评论。

使用的软件包:

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从Pyasn1==0.2.3降级到0.1.9之后,代码似乎正常工作。但问题是,新安装的Pysnmp 4.3.3采用了Pyasn1==0.2.3,并且失败了。

这是Pyasn1/Pysnmp交互中的一个不幸回归


您可以通过将pyasn1降级到0.2.2或从中获取pysnmp或稍等一点直到修复的pysnmp出现来修复此问题。

@illya Etingof非常感谢您的帮助,我们将等待修复并同时使用0.2.2。pysnmp 4.3.4已发布!
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