Я сталкиваюсь со следующей проблемой.
Я использую пакет Python pydbus для тестирования API, подключаясь к целевой машине Linux, которая находится в той же сети, с помощью переменной среды DBUS_SYSTEM_BUS_ADDRESS
При нормальных обстоятельствах это работает хорошо, я могу вызывать любой действительный API поверх созданного прокси-объекта.
Например:
import os
import pydbus
os.environ['DBUS_SYSTEM_BUS_ADDRESS'] = \
"tcp:host=192.168.1.100,port=55556,family=ipv4"
bus = pydbus.SystemBus()
proxy = bus.get("busname", "object_path")
return_value = proxy.method-name(args)
В ходе моего тестирования моя целевая машина linux перезагружается между тем, и когда я повторно использую прокси-объект, я получаю следующую ошибку
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/harman/.local/lib/python2.7/site-packages/pydbus/proxy.py", line 47, in get
0, timeout_to_glib(timeout), None)
GLib.Error: g-io-error-quark: The connection is closed (18)
Я понимаю, что предыдущее соединение больше не существует, поэтому я попытался повторно инициализировать соединение с помощью следующего
bus = pydbus.SystemBus()
proxy = bus.get("busname", "object_path")
Я получаю ту же ошибку в операторе bus.get ().
Есть ли решение / возможное решение этой проблемы?