Ns-3.35 errata --- Compilation on Python 3.10 systems

https://www.nsnam.org/wiki/Ns-3.35_errata

 

On October 1, 2021, ns-3.35 was published. This page lists some minor issues that have been fixed in the mainline since that time, but we considered to be minor enough to just list here rather than make a maintenance release to update ns-3.35.


Compilation on Python 3.10 systems

Python 3.10 was released shortly after ns-3.35, and Python 3.10 will become default in upcoming Linux distributions such as Fedora 35.

The pybindgen version distributed in ns-allinone-3.35 release (version 0.22.0) is missing a small patch needed to make it work with Python 3.10. Below are two suggested workarounds (only one or the other is needed):

Workaround 1:

If you don't need Python bindings, you can disable them from your build by passing the --disable-python argument to Waf configure.

Workaround 2:'

You can replace pybindgen with the latest development version, or patch the version distributed with ns-3.35 release with this small patch:

https://github.com/gjcarneiro/pybindgen/commit/e645cc684602802580a0b800518c784100d54561

 

gedit ../pybindgen-0.22.0/pybindgen/cppclass.py
    try:
        collectionsCallable = collections.Callable
    except AttributeError:
    -    collectionsCallable = collections
    +    import collections.abc
    +    collectionsCallable = collections.abc.Callable

    try:
        set

posted @ 2022-06-09 18:35  张同光  阅读(55)  评论(0编辑  收藏  举报