没有名为 compat.octets 的模块
我正在尝试使用下面的代码来执行简单的SNMP操作。请帮我找出错误。
from pysnmp.entity.rfc3413.oneliner import cmdgen
cmdGen = cmdgen.CommandGenerator()
errorIndication, errorStatus, errorIndex, varBinds = cmdGen.getCmd(
cmdgen.CommunityData('public'),
cmdgen.UdpTransportTarget(('demo.snmplabs.com', 161)),
cmdgen.MibVariable('SNMPv2-MIB', 'sysName', 0),
)
# Check for errors and print out results
if errorIndication:
print(errorIndication)
elif errorStatus:
print(errorStatus)
else:
for name, val in varBinds:
print('%s = %s' % (name.prettyPrint(), val.prettyPrint()))
上面的代码出现了以下错误:
Traceback (most recent call last):
File "tut.py", line 1, in <module>
from pysnmp.entity.rfc3413.oneliner import cmdgen
File "/usr/lib/python2.6/site-packages/pysnmp/entity/rfc3413/oneliner/cmdgen.py", line 1, in <module>
from pysnmp.entity import engine, config
File "/usr/lib/python2.6/site-packages/pysnmp/entity/engine.py", line 2, in <module>
from pysnmp.proto.rfc3412 import MsgAndPduDispatcher
File "/usr/lib/python2.6/site-packages/pysnmp/proto/rfc3412.py", line 3, in <module>
from pyasn1.compat.octets import null
ImportError: No module named compat.octets
2 个回答
0
这段话其实应该是对之前帖子的一条评论。Ilya的回答是对的。我这边通过升级pyasn1的版本解决了这个问题。之前我用的是1 0.0.11a-1ubuntu1,后来换成了1_0.1.7-1ubuntu2。如果python-pysnmp4的依赖关系能写得更清楚就好了。
0
很可能你的系统中的pyasn1和pysnmp这两个包版本不兼容。建议你把这两个包(最新版本)都放到你的$HOME目录下,并设置$PYTHONPATH指向它们。