Python 2.7跨文件夹导入Mininet模块报错的解决方案求助
解决ImportError: No module named mininet.net的问题
1. 修正路径添加逻辑
你需要添加的是包含mininet包的父目录,而非mininet目录本身。假设你的目录结构如下:
项目根目录/ ├── test.py ├── mininet/ # 内含__init__.py的mininet包目录 │ ├── __init__.py │ ├── net.py │ └── ... └── net_test/ ├── main.py └── Create_topology.py
在main.py中用绝对路径添加项目根目录(test.py所在目录),避免相对路径的不确定性:
import sys import os # 获取main.py的绝对路径所在目录 current_script_dir = os.path.dirname(os.path.abspath(__file__)) # 向上跳转一级到项目根目录 project_root = os.path.dirname(current_script_dir) # 将根目录添加到Python路径 sys.path.append(project_root)
2. 检查Create_topology.py的导入语句
确保第7行是全局导入:
import mininet.net # 或者 from mininet import net
不要使用相对导入(如from .mininet import net),因为mininet是独立全局包,并非net_test的子模块。
3. 验证路径是否生效
在main.py中添加路径后,打印路径列表确认:
import sys print(sys.path)
运行main.py,检查输出里是否包含项目根目录。如果没有,调整os.path.dirname的调用次数,确保路径拼接正确。
4. 确认Python版本一致性
保证运行main.py的解释器是Python 2.7,与test.py使用的版本一致。可通过以下命令验证:
python --version
或者在脚本内添加:
import sys print(sys.version)
内容的提问来源于stack exchange,提问作者ilie alexandru
相关产品推荐
相关产品推荐

