我读过教程关于如何编译和安装维基百科镜头,但它没有起作用。
本教程听起来很简单——我只是复制并粘贴到要编辑的文件中。
我尝试过几次,以下是 2 处修改
编辑1:
import logging
import optparse
import gettext
from gettext import gettext as _
gettext.textdomain('wikipedia')
from singlet.lens import SingleScopeLens, IconViewCategory, ListViewCategory
from wikipedia import wikipediaconfig
import urllib2
import simplejson
class WikipediaLens(SingleScopeLens):
wiki = "http://en.wikipedia.org"
def wikipedia_query(self,search):
try:
search = search.replace(" ", "|")
url = ("%s/w/api.php?action=opensearch&limit=25&format=json&search=%s" % (self.wiki, search))
results = simplejson.loads(urllib2.urlopen(url).read())
print "Searching Wikipedia"
return results[1]
except (IOError, KeyError, urllib2.URLError, urllib2.HTTPError, simplejson.JSONDecodeError):
print "Error : Unable to search Wikipedia"
return []
class Meta:
name = 'Wikipedia'
description = 'Wikipedia Lens'
search_hint = 'Search Wikipedia'
icon = 'wikipedia.svg'
search_on_blank=True
# TODO: Add your categories
articles_category = ListViewCategory("Articles", "dialog-information-symbolic")
def search(self, search, results):
for article in self.wikipedia_query(search):
results.append("%s/wiki/%s" % (self.wiki, article),
"http://upload.wikimedia.org/wikipedia/commons/6/63/Wikipedia-logo.png",
self.articles_category,
"text/html",
article,
"Wikipedia Article",
"%s/wiki/%s" % (self.wiki, article))
pass
编辑2:
import urllib2
import simplejson
import logging
import optparse
import gettext
from gettext import gettext as _
gettext.textdomain('wikipediaa')
from singlet.lens import SingleScopeLens, IconViewCategory, ListViewCategory
from wikipediaa import wikipediaaconfig
class WikipediaaLens(SingleScopeLens):
wiki = "http://en.wikipedia.org"
def wikipedia_query(self,search):
try:
search = search.replace(" ", "|")
url = ("%s/w/api.php?action=opensearch&limit=25&format=json&search=%s" % (self.wiki, search))
results = simplejson.loads(urllib2.urlopen(url).read())
print "Searching Wikipedia"
return results[1]
except (IOError, KeyError, urllib2.URLError, urllib2.HTTPError, simplejson.JSONDecodeError):
print "Error : Unable to search Wikipedia"
return []
def search(self, search, results):
for article in self.wikipedia_query(search):
results.append("%s/wiki/%s" % (self.wiki, article),
"http://upload.wikimedia.org/wikipedia/commons/6/63/Wikipedia-logo.png",
self.articles_category,
"text/html",
article,
"Wikipedia Article",
"%s/wiki/%s" % (self.wiki, article))
pass
class Meta:
name = 'Wikipedia'
description = 'Wikipedia Lens'
search_hint = 'Search Wikipedia'
icon = 'wikipedia.svg'
search_on_blank=True
# TODO: Add your categories
articles_category = ListViewCategory("Articles", "dialog-information-symbolic")
def search(self, search, results):
# TODO: Add your search results
results.append('https://wiki.ubuntu.com/Unity/Lenses/Singlet',
'ubuntu-logo',
self.example_category,
"text/html",
'Learn More',
'Find out how to write your Unity Lens',
'https://wiki.ubuntu.com/Unity/Lenses/Singlet')
pass
那么...我可以在编辑中更改什么?(如果有人给我编辑的整个编辑文件,我将不胜感激)
答案1
您的问题是格式和缩进问题。
第一次编辑将导入项放置错误。并且缩进不正确。Python 对缩进非常严格,如果不准确,您将一事无成。
第二次编辑a
在 Wikipedia 后面多了一个内容。代码中到处都是 wikipediaa,这让事情变得混乱。它还存在一些缩进和格式问题。
这里这是教程中文件的一个非常基本的工作版本。对我来说,它很有用。您可以继续添加其他功能,例如自定义图像和语言环境。
学习编程的最佳实践不是要求提供完整的文件,而是问自己哪里做错了。我通过提供示例文件来给你留出余地。
我猜你对自己开发镜头不太感兴趣。为了你好,我已将镜头添加到我的 PPA 中,这样你就可以毫不费力地安装和使用它。
在终端中输入以下命令:
sudo apt-add-repository ppa:jokerdino/ppa
sudo apt-get update
sudo apt-get install wikipedia
安装镜头后,退出 Unity 然后重新登录。现在您就可以使用维基百科镜头了。
笔记:我的 PPA 中的镜头只是功能性的。不要指望它有漂亮的图像、错误消息或本地化版本。如果您想要所有这些,我建议您亲自尝试本教程并添加它们以获得乐趣。