Archive for August, 2011

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,166 views