Python 会话总线初始化

Python 会话总线初始化,python,linux,dbus,Python,Linux,Dbus,我正在尝试使用D-Bus来控制另一个应用程序。在使用Python绑定时,可以仅将D-Bus与dbus.SessionBus()一起使用 但是,其他应用程序需要首先设置环境变量DBUS\u SESSION\u BUS\u ADDRESS和DBUS\u SESSION\u BUS\u PID,否则它们会报告名称“未由任何.service文件提供” 我的问题是,为什么某些应用程序需要设置环境变量?在某些情况下,初始化会话总线是一个标准过程吗?只是一个猜测:python客户端可能能够使用X11来发现会话

我正在尝试使用D-Bus来控制另一个应用程序。在使用Python绑定时,可以仅将D-Bus与
dbus.SessionBus()
一起使用

但是,其他应用程序需要首先设置环境变量
DBUS\u SESSION\u BUS\u ADDRESS
DBUS\u SESSION\u BUS\u PID
,否则它们会报告名称“未由任何.service文件提供”


我的问题是,为什么某些应用程序需要设置环境变量?在某些情况下,初始化会话总线是一个标准过程吗?

只是一个猜测:python客户端可能能够使用X11来发现会话总线地址(除了使用DBUS_session_bus_address环境变量之外)。它存储在
\u DBUS\u SESSION\u BUS\u ADDRESS
属性的
\u DBUS\u SESSION\u BUS\u SELECTION\u[hostname]\u[uuid]
SELECTION owner窗口中(uuid是/var/lib/DBUS/machine id的内容)