您的位置:首页 > 编程语言 > Python开发

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

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

问题一如下

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


  这个问题其实很好解决,执行一下pip install pybindgen就行了。

2. Python绑定问题解决之后还有提示gccxml版本太旧的问题

Python API Scanning Support   : not enabled (gccxml too old)


再向上看错误提示:



既然提示我们gccxml的版本需要大于等于0.9,那么我们来看看现在的版本:



为什么会这样呢?因为现在gccxml被CastXML继承了,ns3从下个版本(3.27)开始可能将抛弃gccxml而使用CastXML(https://www.nsnam.org/wiki/Ns-3.27),现在暂时作为bug被提出来了:



在官方解决该问题之前(而且我们也不确定什么时候这个问题才会被解决),我们暂时先用着。上面的输出你已经看到了,gccxml兼容CastXML,并不是所有的功能都被支持,连版本信息都无法正常获取了,但是看最后一句,那么我们试一下:



版本是0.9,也就是可用的,那么接下来只需要让系统编译调用gccxml时让它指向gccxml.real就行了:

mv /usr/bin/gccxml /usr/bin/gccxml.bak
ln -s /usr/bin/gccxml.real /usr/bin/gccxml


这样问题就解决了。

3. cannot import name free_function_t



解决办法:直接改源码吧,找到ns3.x/bindings/python/ns3modulescan.py下面的这个文件,把import导入指定模块改为import *
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ns3 visualizer gccxml-old