因为python版本需求,通过下载python2.7.6源码包,编译安装了python2.7版本。安装完该版本后,发现ibus输入法虽然可以激活使用,但是不显示控制面板,无法更改设置,连候选词条框都没有,使用几乎瘫痪。由于ibus依赖了一些python模块,所以推测是python版本的问题。


1. 尝试打开输入法设置


#ibus-setup

Traceback (most recent call last):  

 File "/usr/share/ibus/setup/main.py", line 28, in  

   import gtk  

Import Error: No module named gtk

以上模块加载错误信息说明,当前的python版本没有gtk模块。之前安装ibus时,ibus-gtk库是安装在python2.6环境下的,说明键入“python”之后,终端调用的是python2.7版本,查看:

#python --version

Python 2.7.6

#which python

/usr/local/bin/python


为什么会是/usr/local/bin下面的python(2.7),而不是/usr/bin/下面的python(2.6)呢,这关乎到系统环境变量执行路径的设置顺序,查看PATH:

#echo $PATH
/root/.rbenv/shims:/root/.rbenv/bin:/usr/local/rvm/gems/ruby-2.1.1/bin:/usr/local/rvm/gems/ruby-2.1.1@global/bin:/usr/local/rvm/rubies/ruby-2.1.1/bin:/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rvm/bin:/usr/java/jdk1.7.0_45/bin:/usr/java/jdk1.7.0_45/jre/bin:/usr/hadoop/bin:/usr/zookeeper/bin:/usr/chukwa/bin:/usr/chukwa/sbin:/usr/chukwa/etc/chukwa:/usr/hbase/bin:/usr/pig/bin:/usr/hive/bin:/root/bin

从中可以看出,/usr/local/bin在/usr/bin的前面,所以会优先查找/usr/local/bin目录,从而找到python(2.7.6)来执行。


2. 解决


为了在不影响原来系统的正常路径查找顺序以及python版本的设置的情况下,能够让ibus定位到python2.6.6版本,可以用如下暴力解决方法:

删除或者修改/usr/local/bin/python文件:

#mv /usr/local/bin/python{,.bak}


再次执行python:

#python

Python 2.6.6 (r266:84292, Jan 22 2014, 09:37:14)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

发现已经是之前的旧版本2.6.6了


若要使用2.7.6版本,可以用/usr/local/bin目录下python2.7或者python2来执行:

#python2.7

Python 2.7.6 (default, Apr 19 2014, 11:38:31)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>


重启系统,然后执行ibus-setup:

#ibus-setup

出现设置界面,设置好输入法之后,ibus就可以正常使用了

                                                                                                                           ——游响云停