0

我有一个非常简单的测试代码,用于在 MacOS 上测试 easysnmp。这是代码:

# test.py

from easysnmp import Session
session = Session(hostname='localhost', community='public', version=2)

这会导致如下错误消息:

$ python test.py 
Traceback (most recent call last):
  File "/Users/me/python_utsc/test.py", line 9, in <module>
    session = Session(hostname='localhost', community='public', version=2)
  File "/Users/me/python_utsc/.venv/lib/python3.9/site-packages/easysnmp/session.py", line 280, in __init__
    self.sess_ptr = interface.session(
NameError: name 'interface' is not defined

我在 venv 的 Mac v11.6 上运行它。我已经使用以下库安装了 easysnmp:

pip install easysnmp

pip install git+https://github.com/kamakazikamikaze/easysnmp.git

pip install git+https://github.com/nerosketch/easysnmp.git

都给出相同的结果。

蟒蛇版本:

(.venv) mbp:$ python -V
Python 3.9.7

有没有其他人遇到过这个错误?我没有找到任何关于此的搜索结果。我很惊讶我无法创建会话,更不用说在没有此错误的情况下执行任何获取、设置或行走。

提前感谢您的意见。

4

1 回答 1

0

所以这个错误与 Mac OS 无关。它是由于安装了旧版本的 NET-SNMP 而生成的:

$ snmpget --version
NET-SNMP version: 5.6.2.1

EasySNMP 需要(我相信)NET-SNMP v5.7 或更高版本。

运行后brew install net-snmp,这将版本更新为以下内容:

snmpget --version
NET-SNMP version: 5.9.1

现在一切都按预期工作。

于 2021-10-08T16:24:49.263 回答