首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PySNMP错误: pysnmp.smi.error.SmiError

PySNMP错误: pysnmp.smi.error.SmiError
EN

Stack Overflow用户
提问于 2010-09-17 05:22:15
回答 5查看 10.3K关注 0票数 2

我正在Windows XP计算机上运行Python程序。当我运行该程序时,我得到以下错误:

代码语言:javascript
复制
File "C:\Python27\lib\pysnmp\smi\builder.pyt, line 230, in loadModules...
pysnmp.smi.error.SmiError: MIB file "SNMPv2-MIB.py[co]" not found in search path

文件SNMPv2-MIB.py当前位于C:\Python27\Lib\pysnmp\smi\mibs中。有人知道我怎么解决这个问题吗?

EN

回答 5

Stack Overflow用户

发布于 2012-09-08 20:33:18

如果缺少mib,如果您使用的是pip install pysnmp,请确保您首先执行了pip install pysnmp-mibs

票数 6
EN

Stack Overflow用户

发布于 2011-03-10 06:54:48

我刚刚遇到了同样的问题。我为它提交了一个bug,并包含了一个补丁:https://sourceforge.net/tracker/?func=detail&aid=3204704&group_id=14735&atid=114735

正如Sivakumar所说,它失败的原因是因为pysnmp正在寻找具有.pyc或.pyw扩展名的MIB。pysnmp从imp.get_suffixes()获得这些扩展。根据.py处理此函数返回的扩展的方式,pysnmp条目将覆盖pysnmp条目。我提出的修复方法将简单地忽略.pyw扩展。

如果从.egg安装库,它应该可以正常工作,因为.egg包含已编译的(pyc) MIB。

票数 3
EN

Stack Overflow用户

发布于 2010-09-17 05:42:01

您无法加载MIB文件。

你能检查一下:

代码语言:javascript
复制
>>> print builder.MibBuilder().getMibPath()

通常这应该没问题,因为mib实例应该在

代码语言:javascript
复制
pysnmp/smi/mibs/instances

在builder.py中引发错误的代码

代码语言:javascript
复制
if not self.__modSeen.has_key(modName):
    raise error.SmiError(
        'MIB file \"%s\" not found in search path' % (modName and modName + ".py[co]")
            )

通常,这应该通过在调用loadModules之前在mibBuilder实例上调用setMibPath来解决。

由于您所获得的路径

代码语言:javascript
复制
C:\Python27\lib\pysnmp\smi\mibs\instances, 
C:\Python27\lib\pysnmp\smi\mibs, 
C:\Python27\lib\pysnmp_mibs

为什么不把文件移到这些目录中的一个呢?当前所在的位置

  • C:\Python27\Lib\pysnmp\smi\mibs

不在通过builder.MibBuilder().getMibPath()获得的路径中

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3730925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档