Python3 работа с сетевыми интерфейсами в Armbian

Пишу менеджер сетей для Armbian, столкнулся с проблемой не корректной работы библиотеки python-networkmanager. А именно при вызове метода - NetworkManager.NetworkManager.GetDevices() интерпретатор выодит данную ошибку:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 8, in GetDevices
  File "/home/123/python-networkmanager/NetworkManager.py", line 550, in to_python
    val = fixups.base_to_python(val)
  File "/home/123/python-networkmanager/NetworkManager.py", line 607, in base_to_python
    return [fixups.base_to_python(x) for x in val]
  File "/home/123/python-networkmanager/NetworkManager.py", line 607, in <listcomp>
    return [fixups.base_to_python(x) for x in val]
  File "/home/123/python-networkmanager/NetworkManager.py", line 620, in base_to_python
    return globals()[classname](val)
  File "/home/123/python-networkmanager/NetworkManager.py", line 348, in __new__
    klass = device_class(obj.Get('org.freedesktop.NetworkManager.Device', 'DeviceType', dbus_interface='org.freedesktop.DBus.Properties'))
  File "/home/123/python-networkmanager/NetworkManager.py", line 368, in device_class
    return {
KeyError: dbus.UInt32(30, variant_level=1)

В интернете пишут, что мол эта ошибка появляется только в python3 и выше. Возможно кто-то сталкивался с этой проблемой. Также интересуют аналогичные библиотеки работы с интерфейсами для python3.


Ответы (1 шт):

Автор решения: eri

Исправленная библиотека - просто закидываю в проект вместо версии с pip: https://gist.github.com/alex-eri/f1302ebad4d7a936faedfffee4a475a4, а лучше у другого товарища взять исправленную: https://github.com/Sliim/python-networkmanager/blob/add-new-device-type/NetworkManager.py .

Установить через pip

pip install git+https://github.com/alex-eri/[email protected]

Дело не в python3, а в том что у NM появился новый тип устройств, а @seveas проектом своим не занимается 2 года.

→ Ссылка