我收到以下错误:TypeError: unsupported operand type(s) for /: 'list' and 'int'
[尝试使用我在网上找到的这段代码在mininet上实现胖树拓扑,并根据需要对其进行更改。
我该如何解决这个问题?有什么主意吗?
我个人认为for循环中有错误,但不确定。
这是我的代码:
class FatTree( Topo ):
def __init__( self ):
# Topology settings
n = 4
podNum = n
CoreSwitchList = pow((n/2),2)
AggSwitchList = ((n/2)*n)
EdgeSwitchList = ((n/2)*n)
HostList = (n*pow((n/2),2))
# Initialize topology
Topo.__init__( self )
#Switch + Servers variable list (container)
CoreSwitches = []
AggSwitches = []
EdgeSwitches = []
HostList = []
# Core
for core in range(0, CoreSwitchList):
CoreSwitches.append(self.addSwitch("cs_"+str(core)))
# Pod
for pod in range(0, podNum):
# Aggregate
for aggr in range(0, AggSwitchList/podNum):
aggrThis = self.addSwitch("as_"+str(pod)+"_"+str(aggr))
AggSwitches.append(aggrThis)
for x in range((n/2)*aggr, (n/2)*(aggr+1)):
#self.addLink(aggrSwitches[aggr+(aggrSwitchNum/podNum*pod)], coreSwitches[x])
self.addLink(aggrThis, CoreSwitches[x], cls=TCLink, bw=1000)
# Edge
for edge in range(0, EdgeSwitchList/podNum):
edgeThis = self.addSwitch("es_"+str(pod)+"_"+str(edge))
EdgeSwitches.append(edgeThis)
for x in range((EdgeSwitchList/podNum)*pod, ((EdgeSwitchList/podNum)*(pod+1))):
self.addLink(edgeThis, AggSwitches[x], cls=TCLink, bw=1000)
# Host
for x in range(0, (HostList/podNum/(EdgeSwitchList/podNum))):
self.addLink(edgeThis, self.addHost("h_"+str(pod)+"_"+str(edge)+"_"+str(x)), cls=TCLink, bw=100)
topos = { 'fattree': ( lambda: FatTree() ) }
感谢您的任何帮助。
在此行:
for edge in range(0, EdgeSwitchList/podNum):
您正在将列表(EdgeSwitchList
)除以整数(podNum
)。您根本无法做到这一点。您还可以在其他一些行中执行相同的操作。我不知道您在这些方面要做什么。