0

我正在尝试将 pynotify 用于一个小项目,但在我的 Fedora 13 机器上遇到了一个奇怪的问题。看来,当 pynotify 以编程方式运行时,它在show()被调用时会崩溃 -但是,如果我自己键入该行,它运行良好!我也在我的 Ubuntu 机器上测试过它,它运行得非常好。

我的测试代码是:

import pynotify

pynotify.init('someName')
n = pynotify.Notification("Summary", "Body")
n.show()

运行结果如下:

$ python -i test.py 
Traceback (most recent call last):
  File "test.py", line 5, in <module>
    n.show()
glib.GError: Unable to connect to server
>>> n.show()
True
>>> 

那么,有没有人有任何想法可能导致这种行为?不幸的是,Fedora 环境是我几乎无法控制的环境,因此任何需要 root 访问/etc 的解决方案都不会真正起作用。但是,如果需要,我可以尝试在本地安装 pynotify。谢谢你的帮助。

4

1 回答 1

0

由于欧文没有接受我接受这个答案的提议,所以这是对我有用的解决方案。请注意,我不知道为什么会这样(除了模糊的猜测),而且我不保证这是否是一个好的解决方案,但也许你是否曾经像我一样处于奇怪的位置这会有所帮助吗?

如果执行n.show()两次,第二次就会成功运行。因此,为了避免在 Pynotify 正常工作的系统上设置两个通知,我使用了以下内容:

import pynotify

pynotify.init('someName')
n = pynotify.Notification("Summary", "Body")
try:
    n.show()
except:
    n.show()

当然请注意,这个小例子有缺陷,尤其是如果 Pynotify 存在实际问题并将在两个n.show()s 上抛出的所有结果 - 这只是一个最小的工作示例。

于 2011-04-17T15:22:59.657 回答