PySNMP NameError: name 'getCmd' is not defined

PySNMP NameError: name 'getCmd' is not defined

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

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

我按照上述 link 中所述的 "Fetch SNMP variable" 快速启动程序进行操作。

不幸的是,我不断收到此错误:

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

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

这可能是 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,你可能会没事。您可能还想向启动板维护者提交错误。

当您通过以下方式安装 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')