我正在尝试从最初用于另一个(可能是基于Debian的)Linux分配的github repo安装基于Python的包。
该程序似乎使用Python2,导入如下:
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)
但是,当我尝试运行程序时,我得到了这个:
$ 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
我google自己累了,我发现的唯一的东西是对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.
pip2 search notify
返回数百个看似无关紧要的东西。apt search notify
相同。问:我如何找到并安装正确的Notify
产品?
在发布问题后不久,我找到了解决方案。
$ apt show gir1.2-notify-0.7
Package: gir1.2-notify-0.7
Source: libnotify
Version: 0.7.6-2
Maintainer: Debian GNOME Maintainers <[email protected]>
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.
然后通过安装解决问题:
$ sudo apt-get install gir1.2-notify-0.7
但你也可以使用notify2:sudo pip2 install notify2
。