Ubuntu 24.04上classicmenu-indicator运行失败,提示AttributeError错误
我之前在Ubuntu 24.04(搭配Python 3.12.3)运行classicmenu-indicator时,也碰到了完全一样的错误。问题出在Python 3.12对gettext模块做了API调整——bind_textdomain_codeset这个方法被移除了,但旧版本的classicmenu-indicator还在调用它。
这里有个快速解决的办法,直接修改程序源码适配新Python版本:
- 首先打开出错的Python文件,用终端命令:
sudo nano /usr/lib/python3/dist-packages/classicmenu_indicator/cmindicator.py - 找到第152行的这行代码:
gettext.bind_textdomain_codeset(settings.GETTEXT_DOMAIN, 'UTF-8') - 你可以直接把这行注释掉(在行首加上
#);或者如果文件里有gettext.bindtextdomain的调用,也可以把那行改成带编码参数的写法,比如把:
修改为:gettext.bindtextdomain(settings.GETTEXT_DOMAIN, settings.LOCALE_DIR)gettext.bindtextdomain(settings.GETTEXT_DOMAIN, settings.LOCALE_DIR, codeset='UTF-8') - 保存修改并退出编辑器(按
Ctrl+O回车保存,Ctrl+X退出) - 现在再运行
classicmenu-indicator,应该就能正常启动了
如果你不想修改源码,也可以留意有没有适配Ubuntu 24.04的classicmenu-indicator更新版本,不过目前官方包可能还没跟上Python 3.12的变化,修改源码是最直接的临时解决方案。
备注:内容来源于stack exchange,提问作者david
相关产品推荐
相关产品推荐

