2

PySNMP で MIB ファイルを使用しようとしています。コードはかなり単純です。複雑なことは何もありません。OID で情報を取得しようとしているだけです。私が使用しているコードは次のとおりです。

#!/usr/local/bin/python2.7

from pysnmp.smi import builder, view, error
from pysnmp.entity.rfc3413.oneliner import cmdgen

cmdGen = cmdgen.CommandGenerator()
mibBuilder = builder.MibBuilder()
mibPath = mibBuilder.getMibPath() + ( '/path/to/command/mibs', )
mibBuilder.setMibPath( *mibPath )
mibBuilder.loadModules( 
    'MIB-File',
    )
mibView = view.MibViewController( mibBuilder )
errorIndication, errorStatus, errorIndex, \
                 varBindTable = cmdGen.nextCmd( 
    cmdgen.CommunityData( 'Name', 'Community' ),
    cmdgen.UdpTransportTarget( ( 'IP Address', 161 ) ),
    ( ( '', 'serverName' ), ),
    )

print varBindTable

asynCommandGenerator.asyncNextCmdこれに入力されたデータは、同じものを使用する場合と同じように正確でudpTransportTargetあり、問​​題なく機能することを知っていますCommunityData。さらに、私が見ているエラーは、MibBuilder コンポーネントに非常に固有のものです。

私が見ているエラーは次のとおりです。

トレースバック (最新の呼び出しが最後):

ファイル「./snmpcollectortest.py」の 11 行目

「NS-MIB-smiv2」、

ファイル "/usr/lib/python2.7/site-packages/pysnmp-4.2.1-py2.7.egg/pysnmp/smi/builder.py"、221 行目、loadModules

pysnmp.smi.error.SmiError: MIB モジュール "/path/to/command/mibs/MIB-File.py" ロード エラー: MIB ファイル "ASN1.py[co]" が検索パスに見つかりません

アップデート:

M2Crypto がインストールされていないことがわかったので、ASN1.py が見つかりませんでした。ただし、これを修正しましたが、まだ同じエラーが発生しています。

4

1 に答える 1

7

getMibPath()/setMibPath()メソッドは廃止されました。.egg pysnmp またはその MIB モジュールを使用しない限り、それらは機能しません。

代わりに常にgetMibSources()/setMibSources()メソッドを使用する必要があります。これらは、.egg とファイルベースのセットアップの両方で機能します。

mibPath = mibBuilder.getMibSources() + (builder.DirMibSource('/path/to/command/mibs'),)
mibBuilder.setMibSources(*mibPath)
mibBuilder.loadModules(
    'MIB-File',
)

ところで、pysnmp は M2Crypto を必要としません。必要なのは pyasn1 と pycrypto (SNMPv3 暗号化のみ) です。

于 2012-01-28T09:53:57.607 に答える