Pynotify以交互方式运行良好,但在以编程方式运行时崩溃(在Fedora 13上)

时间:2011-04-11 15:03:43

标签: python fedora glib pynotify

我正在尝试将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访问/等的解决方案都不会真正起作用。我可以尝试在本地安装pynotify,但是,如果需要的话。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

由于Owen没有接受我的提议来接受这个答案,这里的解决方案对我有用。请注意,我不知道为什么这样做(除了模糊的猜测),并且我不会对这是否是一个好的解决方案做出任何保证,但也许你可能会像我一样处于奇怪的位置这会有所帮助。

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

import pynotify

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

当然注意,这个小例子有缺陷,如果Pynotify存在实际问题,那么最不可能的结果是n.show() - 这只是一个最小的工作示例。