私はAnaconda2.5をインストールしてPython 2.7を提供しています。私は最新のPySNMPをインストールしました。最初は、PythonスクリプトをPython 2.6を使って別のサーバーから実行しようとしましたが、TypeError(下記参照)があります。私はそれが私のPythonバージョンのためでなければならないと思った、多分何かPySNMPで変更されましたが、私は彼らのサンプルコード(以下を参照)を実行すると、まったく同じエラーを返しました。私は、彼らのサンプルコードがエラーを返し、PySNMPをインストールしているAnacondaが間違っていると疑うことができたのは困惑していますか?
これはサンプルコードです:PySNMPがAnacondaでTypeErrorを返す例のコードでも
#!/root/anaconda2/python
from pysnmp.hlapi import *
for (errorIndication,
errorStatus,
errorIndex,
varBinds) in nextCmd(SnmpEngine(),
CommunityData('public', mpModel=0),
UdpTransportTarget(('demo.snmplabs.com', 161)),
ContextData(),
ObjectType(ObjectIdentity('IF-MIB', 'ifDescr')),
ObjectType(ObjectIdentity('IF-MIB', 'ifType')),
ObjectType(ObjectIdentity('IF-MIB', 'ifMtu')),
ObjectType(ObjectIdentity('IF-MIB', 'ifSpeed')),
ObjectType(ObjectIdentity('IF-MIB', 'ifPhysAddress')),
ObjectType(ObjectIdentity('IF-MIB', 'ifType')),
lexicographicMode=False):
if errorIndication:
print(errorIndication)
break
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex)-1][0] or '?'))
break
else:
for varBind in varBinds:
print(' = '.join([x.prettyPrint() for x in varBind]))
これは私のエラーです:
Traceback (most recent call last): File "get_aqx_intersite_bw.py", line 8, in varBinds) in nextCmd(SnmpEngine(), File "/root/anaconda2/lib/python2.7/site-packages/pysnmp/entity/engine.py", line 61, in __init__ self.msgAndPduDsp = MsgAndPduDispatcher() File "/root/anaconda2/lib/python2.7/site-packages/pysnmp/proto/rfc3412.py", line 29, in __init__ 'SNMP-TARGET-MIB', 'SNMP-USER-BASED-SM-MIB' File "/root/anaconda2/lib/python2.7/site-packages/pysnmp/smi/builder.py", line 337, in loadModules self.loadModule(modName, **userCtx) File "/root/anaconda2/lib/python2.7/site-packages/pysnmp/smi/builder.py", line 306, in loadModule 'MIB module \"%s\" load error: %s' % (modPath, traceback.format_exception(*sys.exc_info())) pysnmp.smi.error.MibLoadError: MIB module "/root/anaconda2/lib/python2.7/site-packages/pysnmp/smi/mibs/SNMPv2-MIB.pyc" load error: ['Traceback (most recent call last):\n', ' File "/root/anaconda2/lib/python2.7/site-packages/pysnmp/smi/builder.py", line 301, in loadModule\n exec(modData, g)\n', ' File "/home/ilan/minonda/envs/_build/lib/python2.7/site-packages/pysnmp/smi/mibs/SNMPv2-MIB.py", line 26, in \n', ' File "/root/anaconda2/lib/python2.7/site-packages/pysnmp/proto/rfc1902.py", line 201, in subtype\n self, value, implicitTag, explicitTag, subtypeSpec\n', 'TypeError: subtype() takes at most 2 arguments (5 given)\n']
ご回答いただきありがとうございます。私はアナコンダを使用していますので、私はしました: –
あなたの返事ありがとうございます。私はアナコンダを使用していますので、私はやった: condaはpysnmp condaがpyasn1 アップグレードアップグレードすると、それは生産: pysnmp 4.3.2 py27_0 pyasn1 0.3.7 py27haf6b024_0 私はpysnmpと別のサーバー上の作業環境を持っている= 4.3 .2とpyasn1 = 0.1.9問題なく動作します。私はこれらの仕様でコンドーム環境を作りましたが、起こっていたエラーはなくなりました。 (新しいエラーが発生しましたが、それは別の問題です)あなたの答えは、その特定のエラーに関して正しいと思われます。 –
、pyasn1-0.3.7は0.1.9に比べて新鮮です。例えば、pyasn1-0.1.9の場合はpysnmp-4.3.2、pyasn1-0.3.7の場合はpysnmp-4.4.1が動作します。他にもたくさんのものがありますが、あなたが最初に持っていたものは、バージョンによってはかなり不均衡です。 ;-) –