Python 没有名为compat.octets的模块
我正在尝试使用下面的代码执行简单的SNMP操作。请帮我找出错误Python 没有名为compat.octets的模块,python,snmp,pysnmp,Python,Snmp,Pysnmp,我正在尝试使用下面的代码执行简单的SNMP操作。请帮我找出错误 from pysnmp.entity.rfc3413.oneliner import cmdgen cmdGen = cmdgen.CommandGenerator() errorIndication, errorStatus, errorIndex, varBinds = cmdGen.getCmd( cmdgen.CommunityData('public'), cmd
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
回溯(最近一次呼叫最后一次):
文件“tut.py”,第1行,在
从pysnmp.entity.rfc3413.oneliner导入cmdgen
文件“/usr/lib/python2.6/site packages/pysnmp/entity/rfc3413/oneliner/cmdgen.py”,第1行,在
从pysnmp.entity导入引擎,配置
文件“/usr/lib/python2.6/site packages/pysnmp/entity/engine.py”,第2行,在
从pysnmp.proto.rfc3412导入MsgAndPduDispatcher
文件“/usr/lib/python2.6/site packages/pysnmp/proto/rfc3412.py”,第3行,在
从pyasn1.compat.octets导入null
ImportError:没有名为compat.octets的模块
很可能您的系统pyasn1和pysnmp包的版本彼此不兼容。我建议将pyasn1和pysnmp包(最新的)都放在$HOME中,并设置$PYTHONPATH指向它们中的每一个。这可能是对上一篇文章的评论。伊利亚的回答是对的。就我而言,我已经能够通过切换到更高版本的pyasn1来纠正这个问题。正在使用10.0.11a-1ubuntu1并切换到10.1.7-1ubuntu2。如果在python-pysnmp4的依赖项中更好地表述此依赖项,则会更好。您是如何安装pysnmp
软件包的?这个代码对我来说很好用。我得到1.3.6.1.2.1.1.5.0=zeus.snmplabs.com
不允许在公司提供给我的linux机器上安装任何软件包。这很烦人。如您所见,他们仍在让我们使用python 2.6。在IT部门接受请求之前,我什么也做不了。据我的经理说,他们总是拒绝这些请求。因此,如果这段代码只适用于最新的pysnmp包,那么请向我推荐一种使用python中的任何内置库实现这一点的替代方法。