Posts Tagged ‘python’

2011/08/18

Python 新旧版本之间的语法不兼容,导致iBus图标不显示,候选词框也不显示;导致Wicd无法启动。如下图所示。 问题产生: 由于Ubuntu默认安装了python2.6 ,后来我自己又装了python3.1,但是在终端里面输入python启动的是2.6版本的,这个是系统的默认,我们可以查看/usr/bin/目录,如图:   可以看到,python实际上是一个软链接,指向了python2.6 。我把它修改指向python3.1,这样输入python直接启动3.1了,方便我在终端下启动python3.1的交互界面。 这样做带来了文章开头所说的问题,一开始我没想到跟python有关,以为是什么配置文件出错了,于是网上google之,用了不少方法都没有解决问题,后来想:在终端下启动,应该会有一些出错信息吧。于是我输入wicd ,果然出现了错误提示: File “/usr/share/wicd/daemon/wicd-daemon.py”,line 122 print “–no-autoconnect detected,not autoconnecting…” SyntaxError: invalid syntax 看到这句话第一反应是:程序的源码出现语法错误了?不可能啊,以前还正常运行过。 于是打开源代码。 看到print 这一句我恍然大悟了,因为在python3.X中是不允许这样的语法的,这个是2.X的语法,于是知道肯定是修改python链接的指向导致了这个问题,解决办法就是修改回去喽。之后这两个程序都正常显示图标,也能正常使用了。 写这篇文章的意义在于: 1、blog很久没更新了,发一篇充数。 2、发现了另外一种导致iBus 和wicd 等依赖python的程序无法正常启动的原因。网上很多iBus的错误都集中在配置文件和环境变量方面,像我这样的python版本之间语法不兼容导致的错误倒是没看到,所以记录之。

Tags: . 5,200 views
2011/07/22

学习python已经有2个月了,当然,是那种断断续续式的学习,囫囵吞枣的把《A byte of Python》看完了,大概知道了python的几个数据类型,了解了一些语法,然后又开始看《Dive into Python3》。 忘了提一句,我学的是Python3.X 而不是2.X。当初也是为了追求“最新”而选的,3.x和2.x的差别还是比较大的,很多时候遇到问题google一下发现网上的解决方法是2.x的,并不适用于3.x,无奈之下只好去翻官方手册。但是3.x的规范毕竟是以后Python语言的发展趋势,唯一的遗憾是目前很多第三方库还不支持3.x,比如图形库wxPython只支持2.x。 由于经常泡在豆瓣上,突然想起玩玩豆瓣的api,也顺便拿python练练手,学了这么长时间的python还没写过什么程序呢。于是就有了本文。 程序原理很简单,无非是通过api获取一些数据,然后在豆瓣返回的数据中提取有用的信息。输入豆瓣ID,然后显示昵称、个人简介等等。代码和截图如下。 Python老手以及熟悉网络开发的同学请无视~             import httplib2import xml.etree.ElementTree as etree h=httplib2.Http()name=input('Douban ID:') response,content=h.request('http://api.douban.com/people/'+name)string=bytes.decode(content) root=etree.fromstring(string) title=root.find('{http://www.w3.org/2005/Atom}title')bio=root.find('{http://www.w3.org/2005/Atom}content')links=root.findall('{http://www.w3.org/2005/Atom}link') for child in links:    if child.attrib['rel']=='homepage':        hp=child.attrib['href']print('[江湖人称]: {0}'.format(title.text))print('[自我简介]: {0}'.format(bio.text))print('[个人主页]: {0}'.format(hp))

Tags: . 12,749 views