首页 > 代码库 > ubuntu12.04 software-center 的一个BUG

ubuntu12.04 software-center 的一个BUG

  ubuntu software-center 软件中心今天突然发现打不开了,就是在启动的过程中启动一半就退出了,多次启动无果。首先想到的办法当然是最彻底的两句话

  sudo apt-get purge software-center

  sudo apt-get install software-center

结果未果,启动起来还是首先一个窗体初始化

  


  接着。。就直接关闭了。然后查看它的输出信息,发现原来是py输出中文导致的,因为我们窗体上有很多中文字体的组件需要加载,而python处理的时候有一个使用ascii编码格式化字符串的操作,所以就这一语言差异导致这个bug的产生。

 产生所在地址/usr/share/software-center/softwarecenter/db/categories.py第269行的debug print

# debug print
	for cat in categories:		    
		LOG.debug("%s %s %s" % (cat.name, cat.iconname,cat.query))


为了解决这个问题,可以将值为中文的字符串 cat.name给格式成utf-8,我这里就直接将LOG.debug注释掉了

# debug print
	try:
		for cat in categories:
			pass		    
			#LOG.debug("%s %s %s" % (cat.name, cat.iconname, cat.query))
	except Exception as error:
		print error
		exit(0)	    



然后保存脚本,启动software-center 正常启动。

  

  PS:本来标题叫做ubuntu software-center的bug,可是当我手贱地打开另外一台装有ubuntu14.04的机器的时候,赫然发现它的debug print是这样写的

# debug print
        for cat in categories:
            LOG.debug("%s %s %s" % (cat.name.decode(‘utf8‘),cat.iconname,cat.query))


 看来这个bug已经有人报道了,不过现在用12.04以及以前版本的人也是大有人在,希望能帮助遇到相同问题的朋友。