Python PyNotify无法从cron工作?

Python PyNotify无法从cron工作?,python,cron,pynotify,Python,Cron,Pynotify,我已经编写了一个使用pynotify发出警报的脚本。当我运行它(pythonscript.py)时,它工作得很好,但是当从cron运行00****myname python~/scripts/script.py时,它就不工作了!我不知道为什么。以下是片段: if os.path.isfile(os.path.expanduser('~/.thumbnails/normal')+'/'+thumbnail): n = pynotify.Notificatio

我已经编写了一个使用pynotify发出警报的脚本。当我运行它(
pythonscript.py
)时,它工作得很好,但是当从cron运行
00****myname python~/scripts/script.py
时,它就不工作了!我不知道为什么。以下是片段:

        if os.path.isfile(os.path.expanduser('~/.thumbnails/normal')+'/'+thumbnail):
            n = pynotify.Notification(video_file[0], 'finished download', os.path.expanduser('~/.thumbnails')+'/'+thumbnail)
        else:
            n = pynotify.Notification(video_file[0], 'finished download', '/usr/share/icons/gnome/48x48/mimetypes/gnome-mime-application-x-shockwave-flash.png')
        print n
        n.show()

将输出定向到~/log.file会给出:
并且没有错误,因此我不太确定还要去哪里查看。

我对cron作业没有那么深入,但我对pynotify有一点了解。它使用libnotify和一些DBUS的东西,因此它在某处调用DBUS和iirc,它还传递应该显示通知的显示id

现在,默认情况下,cron不适用于GUI应用程序,您必须为它们指定要使用的显示:

00 * * * * myname env DISPLAY=:0 python ~/scripts/script.py
这将使cron使用当前显示(桌面)

如果你在Ubuntu上运行,这个页面可能会让你感兴趣:

@Ivo Wetzel很好的解释,但它在gnome ubuntu中对我不起作用