ubuntu20.04 从python3.8降到python3.6出现区域和语言(region & language)不能打开的情况

本文讲述了在Ubuntu 20.04系统中安装Python 3.8后遇到的语言切换问题,通过排查系统日志发现缺少_gi模块,通过修改shell脚本指定python3.8路径解决了此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

提示:这里描述具体问题:在ubuntu20.04安装了python3.8之后就不能用中英文切换了。
点击manage install language,没有反映。
在这里插入图片描述
点击商店中的中英切换图标也没有反映。
在这里插入图片描述
查了好久资料才反应过来,没有提示,没有反应,不知道错误在哪里。后来反应过来了,在ubuntu的系统里面所有的过程都会被记录下来,所以就想到去系统log里面找错误,果然在/var/log/syslog里面发现了问题,提示没有_gi模块,这让我想到了之前在修改python版本时遇到的一个问题就是不能打开terminal,详见:http://t.csdn.cn/U4xrC
在这里插入图片描述
根据之前的经验找到了问题。

原因分析:

提示:这里填写问题的分析:原因是python在启动之前会先启动shell脚本,在shell脚本中提示时python3,当前的python3指向python3.6,python3.6不能直接应用,所以提示不能找到_gi模块。


解决方案:

提示:这里填写该问题的具体解决方案:和之前一样找到python提示错误的文件,修改为python3.8即可解决。

提示是这句话,打开文件。

File "/usr/bin/gnome-language-selector", line 5, in <module>
sudo vim /usr/bin/gnome-language-selector

#! /usr/bin/python3

import gettext

from LanguageSelector.gtk.GtkLanguageSelector import GtkLanguageSelector
from gettext import gettext as _
from optparse import OptionParser
from gi.repository import Gtk, Gio
import sys

is_running = False

def on_activate (app, options):
    global is_running
    if is_running:
        for window in app.get_windows():
            if not window.is_active():
                window.present()
        return
    is_running = True
    instance = GtkLanguageSelector(datadir=options.datadir,
                                   options=options)
    app.add_window(instance.window_main)

if __name__ == "__main__":
    gettext.bindtextdomain("language-selector", "/usr/share/locale")
    gettext.textdomain("language-selector")

    parser = OptionParser()
    parser.add_option("-n", "--no-verify-installed-lang-support",
                      action="store_false", dest="verify_installed",
                      default=True,
                      help=_("don't verify installed language support"))
    parser.add_option("-d", "--datadir",
                      default="/usr/share/language-selector/",
                      help=_("alternative datadir"))
    (options, args) = parser.parse_args()

    app = Gtk.Application(application_id="com.ubuntu.GnomeLanguageSelector",
                          flags=Gio.ApplicationFlags.FLAGS_NONE)
    app.connect("activate", on_activate, options)
    app.run(None)

修改为

#! /usr/bin/python3.8

import gettext

from LanguageSelector.gtk.GtkLanguageSelector import GtkLanguageSelector
from gettext import gettext as _
from optparse import OptionParser
from gi.repository import Gtk, Gio
import sys

is_running = False

def on_activate (app, options):
    global is_running
    if is_running:
        for window in app.get_windows():
            if not window.is_active():
                window.present()
        return
    is_running = True
    instance = GtkLanguageSelector(datadir=options.datadir,
                                   options=options)
    app.add_window(instance.window_main)

if __name__ == "__main__":
    gettext.bindtextdomain("language-selector", "/usr/share/locale")
    gettext.textdomain("language-selector")

    parser = OptionParser()
    parser.add_option("-n", "--no-verify-installed-lang-support",
                      action="store_false", dest="verify_installed",
                      default=True,
                      help=_("don't verify installed language support"))
    parser.add_option("-d", "--datadir",
                      default="/usr/share/language-selector/",
                      help=_("alternative datadir"))
    (options, args) = parser.parse_args()

    app = Gtk.Application(application_id="com.ubuntu.GnomeLanguageSelector",
                          flags=Gio.ApplicationFlags.FLAGS_NONE)
    app.connect("activate", on_activate, options)
    app.run(None)

欢迎评论:

提示:欢迎大家在评论区讨论相关问题。
可以关注博主,我会持续更新工作中遇到的技术小砖头,供大家使用。
也可以在评论区告知好的小砖头或技术,我会收录。
还可以指出本博文错误,希望大家不吝赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端小白到专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值