错误:/不支持的操作数类型:“列表”和“整数”

问题描述 投票:0回答:1

我收到以下错误: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() ) }

感谢您的任何帮助。

python ubuntu mininet
1个回答
0
投票

在此行:

for edge in range(0, EdgeSwitchList/podNum):

您正在将列表(EdgeSwitchList)除以整数(podNum)。您根本无法做到这一点。您还可以在其他一些行中执行相同的操作。我不知道您在这些方面要做什么。

© www.soinside.com 2019 - 2024. All rights reserved.