PySNMP NameError:name' getCmd'没有定义

时间:2016-02-21 19:02:49

标签: python pysnmp

我最近在Ubuntu上安装了PySNMP库。

http://pysnmp.sourceforge.net/quick-start.html

我按照快速启动程序使用"获取SNMP变量"如上面的链接所述。

不幸的是,我一直收到这个错误:

File "/home/Camille/Desktop/quick_start.py", line 4, in <module>
getCmd(SnmpEngine(),
NameError: name 'getCmd' is not defined

getCmd()是一个函数,它确实存在

2 个答案:

答案 0 :(得分:0)

这可能是apt包中的打包错误。

在Mint 17.3(Ubuntu 14.04)上,如果我创建一个虚拟环境并使用pip来安装PySNMP,我会得到版本4.3.2,这很好:

>>> from pysnmp.hlapi import *
>>> getCmd
<function getCmd at 0x7f24e6fab0c8>

然而,如果我通过apt-get install python-pysnmp4安装ubuntu软件包,我得到4.2.5,上面的代码根本不起作用。 (ImportError: No module named hlapi

就我而言,apt软件包版本不包含hlapi模块。

PySNMP 4.2.5源代码的文件列表位于:http://pysnmp.cvs.sourceforge.net/viewvc/pysnmp/pysnmp/pysnmp/?pathrev=release_4_2_5_tag

apt软件包的文件列表位于:http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/trusty/python-pysnmp4/trusty/files/head:/pysnmp/

我不知道为什么它会丢失,但它是一个遗漏(他们忘记了hlapi文件夹),或者其他一些我不清楚的原因。

虽然这与您的错误不同,但它确实表明可能存在其他包装问题。也许您正在使用的版本在某种程度上也是不完整的。

最重要的是,如果您创建了virtualenv并使用pip来安装PySNMP,那么您可能会没问题。您可能还想要使用launchpad维护者提交错误。

答案 1 :(得分:0)

通过以下方式安装pysnmp时

$ pip install pysnmp

$ easy_install pysnmp

库pysnmp安装在此路径中:

  

/usr/local/lib/python2.7/dist-packages /

这不是默认路径搜索

之一

在你的程序中添加以下行:

import sys

sys.path.insert(1, '/usr/local/lib/python2.7/dist-packages')