NS-3安装Pyviz可视化工具(针对不能安装依赖包的情况)

在NS-3中安装可视化工具pyviz的一些问题的解决
PyViz是一个用Python开发的在线ns-3可视化工具。
1.先安装依赖包:

 sudo apt-get install python-dev python-pygraphviz python-kiwi python-pygoocanvas python-gnome2 python-gnome2-desktop-dev python-rsvg

或者

sudo apt-get install python-dev python-pygraphviz python-kiwi python-pygoocanvas python-gnome2 gir1.2-goocanvas-2.0 python-rsvg

若出现apt-get install E: 无法定位软件包问题,这里提供两种办法。

方法1:用root权限安装依赖
切换到root权限:

sudo -s

输入密码,就可以切换到root权限了
然后就可以安装依赖了
参考链接

方法2:添加源:

编辑/etc/apt/sources.list文件,添加源 deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse 即可。

步骤如下:

1)编辑sources.list :

sudo vim /etc/apt/sources.list  

若出现sudo vim找不到命令,则是没有安装vim。如下安装即可:

sudo apt-get install vim-gtk

2)添加源: 在sources.list文件末尾添加

deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse

(备注:可以试试把链接改为:deb http://archive.ubuntu.com/ubuntu/ pool/trusty main universe restricted multiverse。这个改链接地址的方法没尝试过,只是在打开链接的时候发现trusty main universe restricted multivers这四个文件夹在pool文件夹下面)

3)保存并退出

:wq

若出现 E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
可以使用aptitude安装依赖,aptitude可以进行智能安装。
先安装aptitude:

  sudo apt-get install aptitude`

然后使用aptitude安装需要的依赖包:

sudo aptitude install <package name>

aptitude会自动搜寻并下载相关的依赖库。

2.安装‘交互式Python’,以便在后面的可视化界面(the visualizerGUI:)中使用控制按钮:

sudo apt-get install ipython

3.再重新编译:

sudo ./build.py --enable-examples

编译完成后,可以看到visualizer模块已经成功编译。
编译完成

ps:使用方法: 以命令行参数的形式调用,只要程序中一下语句(需加在创建节点之前):

 CommandLine cmd;
 cmd.Parse (argc,argv);

运行程序时加入参数 --vis;

比如:sudo ./waf --run scratch/myfirst --vis

另外,两个小的点:

1)若遇到如下问题:

No visualization support (No module named _gi_cairo).
No visualization support (No module named _gi_cairo).
Traceback (most recent call last):
File “”, line 2, in
File “/home/w/tarballs/ns-allinone-3.29/ns-3.29/src/visualizer/visualizer/core.py”, line 1847, in start
import sys
RuntimeError: maximum recursion depth exceeded while calling a Python object
安装gi.cairo即可解决:

sudo apt-get install gi.cairo

2)若–vis报错:

AttributeError: ‘gi.repository.GooCanvas’ object has no attribute 'LineDash’

解决办法:

将src/visualizer/visualizer/core.py中第528行的

line_dash=GooCanvas.LineDash([10.0, 10.0 ])

更改为

line_dash=GooCanvas.CanvasLineDash.newv([10.0, 10.0 ])

即可解决。
(这段代码的修改解决了模拟的时候没有节点的情况,一般用viz模拟first是有节点的,但是模拟second的时候,就不一定了。)

你可能感兴趣的:(NS-3安装Pyviz可视化工具(针对不能安装依赖包的情况))