Python&Mininet新手求助:ImportError无法从select导入poll的原因
问题:Mininet运行报错ImportError: cannot import name 'poll' from 'select'
我是Python和Mininet新手,运行以下代码时出现了ImportError错误,希望了解报错原因。
运行的Mininet代码:
from mininet.net import Mininet # from mininet.util import createLink net = Mininet() # Creatng nodes in the network. c0 = net.addController() h0 = net.addHost('h0') s0 = net.addSwitch('s0') h1 = net.addHost('h1') # Creating links between nodes in network net.addLink(h0, s0) net.addLink(h1, s0) # Configura:on of IP addresses in interfaces h0.setIP('192.168.1.1', 24) h1.setIP('192.168.1.2', 24) net.start() net.pingAll() net.stop()
出现的报错信息:
Traceback (most recent call last): File "C:\Users\Asus\PycharmProjects\SDN\main.py", line 1, in <module> from mininet.net import Mininet File "C:\Users\Asus\PycharmProjects\SDN\venv\Lib\site-packages\mininet\net.py", line 99, in <module> from mininet.cli import CLI File "C:\Users\Asus\PycharmProjects\SDN\venv\Lib\site-packages\mininet\cli.py", line 31, in <module> from select import poll, POLLIN ImportError: cannot import name 'poll' from 'select' (C:\Users\Asus\AppData\Local\Programs\Python\Python311\DLLs\select.pyd)
报错原因分析
- Mininet不支持Windows系统:Mininet的底层实现依赖Linux系统特有的网络特性,比如网络命名空间、虚拟网桥等,这些功能Windows系统完全没有,所以无法在Windows上直接运行Mininet。
select.poll()是Linux专属接口:报错里提到的poll方法是Python标准库select模块中仅存在于Linux/Unix系统的IO多路复用接口,Windows版本的select模块没有这个方法,这是导致直接导入失败的直接原因。
内容的提问来源于stack exchange,提问作者Tarek Kabani
相关产品推荐
相关产品推荐

