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 шт):
Исправленная библиотека - просто закидываю в проект вместо версии с 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 года.