我想在我的服务器上编写一些 Python 脚本,以便与 finch
通信(pidgin
的控制台界面,界面看起来像 links2
)通过DBus Python库发送消息或检查好友在线状态。
如果您在 X 中执行此操作,则此操作有效。在 X 终端中运行 finch
并在另一个终端中运行 Python 脚本,不会出现错误/异常。
但是,如果您没有 X,则必须在 TTY1 中运行 finch
(ctrl+alt+f1),并在 TTY2 中运行 python 脚本 (ctrl+alt+ f2) 但 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.`
我在某处读到,也许您需要在同一个 TTY 中运行 finch
和脚本。但是我无法正确测试它,因为它不像在一行上运行 cd 并在下一行上运行 ls 。您输入 finch
,它就会运行,并且您无法再输入任何其他命令,例如 links2
。我尝试运行 finch &
但似乎暂停了 finch
,并且运行脚本也会给出相同的错误。
解决方案?谢谢。
最佳答案
安装屏幕
dbus 启动屏幕
雀科
- ctrl+ac
python myscript
关于python - DBus Finch/Pidgin 不带 X11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5530542/