Windows环境下安装运行ns-3仿真完整分步指南求助
ns-3 从安装到Python可视化仿真新手指南
一、先搞定环境(推荐WSL Ubuntu 22.04)
- 打开PowerShell,执行
wsl --install,按提示重启后选择Ubuntu 22.04完成安装 - 进入Ubuntu终端后,先更新系统:
sudo apt update && sudo apt upgrade -y
二、装全依赖(含Python和GUI支持)
执行这条命令一次性装完所有需要的编译、Python和可视化工具:
sudo apt install -y gcc g++ python3 python3-dev python3-pip git mercurial cmake libc6-dev libc6-dev-i386 libclang-dev llvm-dev automake autoconf libxml2-dev libgtk-3-dev libboost-all-dev
再装Python绑定需要的工具:
pip3 install setuptools wheel pybind11
三、下载编译ns-3源码
- 克隆稳定版源码(以ns-3.37为例):
git clone https://gitlab.com/nsnam/ns-3-dev.git ns-3.37 cd ns-3.37 - 配置编译选项,一定要开Python绑定和GUI:
看到./waf configure --enable-python --enable-gtk --enable-examples --enable-testsConfiguration finished successfully就说明配置没问题 - 编译(加-j4用4线程加速,可根据自己CPU核心数调整):
出现./waf build -j4Build finished successfully就编译完成了
四、验证Python环境
- 先测模块能不能导入:
没报错就说明环境okpython3 -c "import ns3; print('ns-3 Python绑定正常')" - 写个简单的Python测试脚本
hello_ns3.py:
执行脚本:import ns3 ns3.LogComponentEnable("HelloSimulator", ns3.LOG_LEVEL_INFO) simulator = ns3.Simulator() # 定时打印消息 ns3.Simulator.Schedule(ns3.Seconds(0.0), lambda: print("Hello ns-3 from Python!")) simulator.Run() simulator.Destroy()
看到输出python3 hello_ns3.pyHello ns-3 from Python!就成功了
五、跑可视化仿真
1. WSL下GUI显示设置
- Windows 11用户:默认自带WSLg,直接运行GUI程序就行
- Windows 10用户:装VcXsrv,启动时勾上
Disable access control,然后在WSL终端执行:export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0.0
2. 运行可视化例子
直接运行自带的WiFi自组网可视化仿真:
./waf --run "wifi-simple-adhoc --visualize"
会弹出GUI窗口,能看到节点移动和数据包传输的实时画面。
如果是自己写的Python脚本,要加可视化的话,在代码末尾添加:
simulator.Run() simulator.Destroy() # 启用GUI(前提是编译时开了--enable-gtk) ns3.GtkConfigStore.ConfigureAttributes()
六、可选:用Docker省配置时间
- 拉取官方ns-3镜像:
docker pull nsnam/ns-3-dev:latest - 运行容器,挂载本地脚本目录并转发GUI:
docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v $(pwd)/my-ns3-scripts:/home/ns3/my-scripts nsnam/ns-3-dev:latest- 进入容器后,直接在ns-3源码目录运行
./waf --run "wifi-simple-adhoc --visualize"就能看到GUI - 本地
my-ns3-scripts目录里的脚本,在容器里的/home/ns3/my-scripts能找到
- 进入容器后,直接在ns-3源码目录运行
内容的提问来源于stack exchange,提问作者Cyber Avater
相关产品推荐
相关产品推荐

