简体   繁体   中英

How to install and use python PyGObject “Notify” (or equivalent) on a RPi3

I'm trying to install a Python based package from a github repo originally meant for another (probably Debian based) Linux distribution.

The program seem to use Python2, and the imports are given as follows:

import argparse
import logging
import Queue
import collections
import ConfigParser
import os
import socket
import random
import gi

gi.require_version('Notify', '0.7')
from gi.repository import Notify

from multiprocessing import Process, Queue as MPQueue, Event
...
def notif(msg):
    Notify.init("TheProg")
    notice = Notify.Notification.new("Critical !", msg)
    notice.set_urgency(2)

However, when I try to run the program I get this:

$ python2 main.py -h

Traceback (most recent call last):
  File "main.py", line 11, in <module>
    gi.require_version('Notify', '0.7')
  File "/usr/lib/python2.7/dist-packages/gi/__init__.py", line 100, in require_version
    raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace Notify not available

I've googled myself tired and the only thing I find are some cryptic references to the PyGObject API Reference :

gir1.2-notify-0.7 (0.7.7-3) 

Parent Project: 
    Desktop notification library (libnotify is a library for sending desktop notifications)
Description:    
    A library that sends desktop notifications to a notification daemon, as 
    defined in the Desktop Notifications spec. These notifications can be 
    used to inform the user about an event or display some form of 
    information without getting in the user’s way.
  • Running pip2 search notify returns hundreds of seemingly irrelevant stuff.
  • Same with apt search notify .

Q: How can I find and install the correct Notify thing?

Very shortly after posting the question, I found the solution.

$ apt show gir1.2-notify-0.7

Package: gir1.2-notify-0.7
Source: libnotify
Version: 0.7.6-2
Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
Installed-Size: 22.5 kB
Depends: gir1.2-gdkpixbuf-2.0, gir1.2-glib-2.0, libnotify4 (>= 0.7.3)
Priority: optional
Section: introspection
Download-Size: 19.8 kB
APT-Manual-Installed: yes
APT-Sources: http://mirrordirector.raspbian.org/raspbian/ jessie/main armhf Packages
Description: sends desktop notifications to a notification daemon (Introspection files)
 A library that sends desktop notifications to a notification daemon, as
 defined in the Desktop Notifications spec. These notifications can be
 used to inform the user about an event or display some form of
 information without getting in the user's way.
 .
 This package can be used by other packages using the GIRepository format to
 generate dynamic bindings.

Then the problem was solved by installing with:

$ sudo apt-get install gir1.2-notify-0.7

But it's also possible you can use notify2 with: sudo pip2 install notify2 .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM