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

来源:互联网 发布:孙权喜欢大乔吗 知乎 编辑:程序博客网 时间:2024/06/05 02:17

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

  1. 问题一如下
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.bakln -s /usr/bin/gccxml.real /usr/bin/gccxml

这样问题就解决了。

3. cannot import name free_function_t
这里写图片描述
解决办法:直接改源码吧,找到ns3.x/bindings/python/ns3modulescan.py下面的这个文件,把import导入指定模块改为import *

0 0
原创粉丝点击