我想在我的服务器上编写一些 Python 脚本,我可以通过 DBus Python 库与finch
(控制台界面pidgin
,界面看起来像links2
)进行通信,以发送消息或检查好友在线状态。
如果您在 X 中执行此操作,则此方法有效finch
。在 X 终端中运行并在另一个终端中运行 Python 脚本,没有错误/异常。
但是如果你在没有 X的情况下这样做,你必须finch
在 TTY1 (ctrl+alt+f1) 和 TTY2 (ctrl+alt+f2) 中运行 python 脚本,但是 python 脚本会失败。
以下是脚本的前几行:
import dbus
bus = dbus.SessionBus() # gives EXCEPTION error
obj = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
...
异常错误是:
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.Spawn.ExecFailed: dbus-launch failed to autolaunch D-Bus session: Autolaunch error: X11 initialization failed.`
我在某处读到,也许您需要finch
在同一个 TTY 中运行脚本和脚本。但是我无法正确测试它,因为它不像cd
在一行和ls
下一行运行。您输入finch
,它运行,并且您不能再输入任何其他命令,例如links2
. 我尝试运行finch &
,但似乎暂停finch
,并且运行脚本也给出了相同的错误。
解决方案?谢谢。