NS Bindings相关问题:

1 NS3编译遇到的Python相关的问题解决办法

./waf configure --with-pybindgen=存放路径

Linux系统在使用时,难免碰到更新忍不住升级软件包,升级软件包有时会带来开发环境的变化,环境的变化就会导致一些编译环境由于版本的原因无法编译通过,今天介绍一下关于Python模块的两个问题的解决办法:

    问题一如下

PyViz visualizer              : not enabled (Python Bindings are needed but not enabled)
Python Bindings               : not enabled (PyBindGen missing)

这个问题其实很好解决,执行一下

pip install pybindgen

  注:以下代码若不知道存放路径,重新运行以上代码即可看到

./waf -d debug configure --with-pybindgen=存放路径
//ex:./waf -d debug configure --with-pybindgen=/home/antl417/anaconda3/lib/python3.8/site-packages

2 E:无法定位软件包 python-pygoocanvas E: 无法定位软件包 libgoocanvas-dev

问题描述:
在NS3中,采用以下命令,安装可视化工具时,出现无法定位软件包的问题

sudo apt-get install python-pygraphviz python-kiwipython-pygoocanvas libgoocanvas-dev

  解决方案:

这主要是由软件源导致的,我们需要增加软件的源deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse

    编辑软件源文件sources.list

sudo vim /etc/apt/sources.list

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

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

3. 保存退出

:wq

    4.更新软件源

sudo apt-get update

    5.重新安装

sudo apt-get install python-pygraphviz python-kiwipython-pygoocanvas libgoocanvas-dev

  3 剩余步骤

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

sudo apt-get install ipython

.再重新编译:

./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 ])

 参考链接:

1  E:无法定位软件包 python-pygoocanvas E: 无法定位软件包 libgoocanvas-dev

2 在NS-3中安装可视化工具pyviz的一些问题的解决

3 ns-3学习手记10_ns3.29中PyViz visualizer没有enabled,进行安装

4 NS3编译遇到的Python相关的问题解决办法

Logo

更多推荐