2

Windows XP マシンで Python プログラムを実行しています。プログラムを実行すると、次のエラーが表示されます。

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ます。これを解決する方法を知っている人はいますか?

4

5 に答える 5

6

mib が欠落している場合は、pip install pysnmp-mibs使用した場合は最初に実行したことを確認してくださいpip install pysnmp

于 2012-09-08T12:33:17.983 に答える
3

私はちょうど同じ問題に遭遇しました。バグを報告し、パッチを含めました: https://sourceforge.net/tracker/?func=detail&aid=3204704&group_id=14735&atid=114735

Sivakumar が言うように、それが失敗する理由は、pysnmp が .pyc または .pyw 拡張子を持つ MIB を探しているからです。pysnmp は imp.get_suffixes() からこれらの拡張子を取得します。pysnmp がこの関数から返された拡張子を処理する方法に基づいて、.pyw エントリが .py エントリを上書きします。私が提案した修正では、単に .pyw 拡張子を無視します。

.egg からライブラリをインストールすると、.egg にはコンパイル済み (pyc) MIB が含まれているため、正常に動作するはずです。

于 2011-03-09T22:54:48.420 に答える
2

MIB ファイルをロードできません。

確認できますか:

>>> print builder.MibBuilder().getMibPath()

mib インスタンスが存在するはずなので、通常はこれで問題ありません。

pysnmp/smi/mibs/instances

builder.py でエラーが発生するコード

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 を呼び出すことによって解決されます。

あなたが得ている道から

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() 経由で取得したパスの中にありません

于 2010-09-16T21:42:01.407 に答える
0

今日、私も同じ問題に直面しています。mibs パスが正しく設定されている。pysnmp をデバッグ モードで実行しているときに、SNMPv2-MIB.pyc または .pyw ファイルが必要であることがわかりました。

ソースからpysnmpを解凍して使用したため、mibモジュールに対応するpycファイルはそのフォルダー構造では利用できません。pysnmp-4.1.13a\pysnmp\smi\mibs\instances または pysnmp-4.1.13a\pysnmp\smi\mibs で利用可能な対応する .py ファイルをコンパイルしようとはしていません。代わりに、easyinstall スクリプトを使用して pysnmp モジュールをダウンロードしました。

卵ファイルでは、問題は発生しなくなりました。

ありがとうシヴァクマール

于 2010-12-22T05:53:21.857 に答える