在Cameo Systems Modeler 18.1中导入外部python库(pysnmp)
我正在尝试执行一些Python代码,这些代码在Cameo Systems Modeler(CSM)项目中利用pysnmp Python库,更具体地说是在模型“活动”中。 在这个模型活动中,我可以很好地运行其他python代码,例如:在Cameo Systems Modeler 18.1中导入外部python库(pysnmp),python,pysnmp,Python,Pysnmp,我正在尝试执行一些Python代码,这些代码在Cameo Systems Modeler(CSM)项目中利用pysnmp Python库,更具体地说是在模型“活动”中。 在这个模型活动中,我可以很好地运行其他python代码,例如: import sys print "imported sys" print "len(sys.argv): ", len(sys.argv) for arg in sys.argv: print arg p
import sys
print "imported sys"
print "len(sys.argv): ", len(sys.argv)
for arg in sys.argv:
print arg
print "tried to print sys.argv args..."
这在CSM中运行良好,但当我尝试运行使用外部库(如Pysnmp)的脚本时,我无法运行。例如,我可以在Windows CMD上运行以下Python代码(示例自):
# from the pysnmp site, using SNMP v2c
from pysnmp.entity.rfc3413.oneliner import cmdgen
def cbFun(sendRequestHandle, errorIndication, errorStatus, errorIndex,
varBinds, cbCtx):
if errorIndication:
print(errorIndication)
return
if errorStatus:
print('%s at %s' % \
(errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex)-1] or '?')
)
return
for oid, val in varBinds:
if val is None:
print(oid.prettyPrint())
else:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
cmdGen = cmdgen.AsynCommandGenerator()
for varName in ( cmdgen.MibVariable('SNMPv2-MIB', 'sysDescr', 0),
cmdgen.MibVariable('SNMPv2-MIB', 'sysLocation', 0),
cmdgen.MibVariable('SNMPv2-MIB', 'sysName', 0) ):
cmdGen.getCmd(
cmdgen.CommunityData('public'),
cmdgen.UdpTransportTarget(('127.0.0.1', 161)),
(varName,),
(cbFun, None)
)
cmdGen.snmpEngine.transportDispatcher.runDispatcher()
我的问题是,我不知道如何在Cameo Systems Modeler(CSM)项目中导入和使用像Pysnmp这样的外部库。我尝试通过用户手册中指定的项目选项导入库:“选项”>“项目”>“常规项目选项”>“外部库”,并添加所需脚本的.zip(根据上面的代码:pysnmp.entity.rfc3413.oneliner)。
我观察到,在上面的第一个代码块中,我可以导入“sys”库,但它是.jar还是.py?我可以对Pysnmp和其他外部LIB执行类似的操作吗?看起来这个问题是特定于CSM的。另外,如果你能提供更多关于你的问题到底是什么样子的信息,那可能会有所帮助。伊利亚,我试着添加图像来让事情变得更清楚,但我还不被允许这样做。这是我关于堆栈交换的第一个问题。看起来这个问题是特定于CSM的。另外,如果你能提供更多关于你的问题到底是什么样子的信息,那可能会有所帮助。伊利亚,我试着添加图像来让事情变得更清楚,但我还不被允许这样做。这是我关于堆栈交换的第一个问题。看起来这个问题是特定于CSM的。另外,如果你能提供更多关于你的问题到底是什么样子的信息,那可能会有所帮助。伊利亚,我试着添加图像来让事情变得更清楚,但我还不被允许这样做。这是我关于堆栈交换的第一个问题。