ubuntu22.04使用subprocess创建新终端时不能使用中文输入法

系统字体配置、中文显示和输入法问题
sonicno1
帖子: 13
注册时间: 2023-08-26 18:06
系统: ubuntu22.04

ubuntu22.04使用subprocess创建新终端时不能使用中文输入法

#1

帖子 sonicno1 » 2023-08-26 18:14

ubuntu22.04使用subprocess创建新终端时不能使用中文输入法

export lang等相关设置都试过,终端gnome-terminal无法使用中文,也不能显示中文。
上次由 sonicno1 在 2023-08-27 17:54,总共编辑 1 次。
sonicno1
帖子: 13
注册时间: 2023-08-26 18:06
系统: ubuntu22.04

Re: ubuntu22.04使用subprocess创建新终端时不能输入中文输入法

#2

帖子 sonicno1 » 2023-08-26 21:07

经过编码的相关设置,在终端能显示中文,但是ibus、fcitx 5等中文输入法不能被调出,只能从其它程序复制中文到终端。
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: ubuntu22.04使用subprocess创建新终端时不能使用中文输入法

#3

帖子 astolia » 2023-08-28 10:27

不想给代码和运行环境的话,只能让你对比一下env的输出内容看是不是缺了什么
sonicno1
帖子: 13
注册时间: 2023-08-26 18:06
系统: ubuntu22.04

Re: ubuntu22.04使用subprocess创建新终端时不能使用中文输入法

#4

帖子 sonicno1 » 2023-08-31 10:18

subprocess.Popen("gnome-terminal"),它会起一个新终端,但是,中文输入法无法调出。
sonicno1
帖子: 13
注册时间: 2023-08-26 18:06
系统: ubuntu22.04

Re: ubuntu22.04使用subprocess创建新终端时不能使用中文输入法

#5

帖子 sonicno1 » 2023-08-31 10:19

import os
os.system("gnome-terminal")
current_directory = os.getcwd()
os.chdir(os.path.join(os.sep, current_directory))
os.system("ls -ahl")
os.system("")
这是另一种方法,照样无法调出中文输入法
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: ubuntu22.04使用subprocess创建新终端时不能使用中文输入法

#6

帖子 astolia » 2023-09-01 10:40

你是不是不知道什么叫运行环境,也没听过env命令?
sonicno1
帖子: 13
注册时间: 2023-08-26 18:06
系统: ubuntu22.04

Re: ubuntu22.04使用subprocess创建新终端时不能使用中文输入法

#7

帖子 sonicno1 » 2023-09-03 18:36

你要是懂就直接说,别浪费大家时间,别在这一直不懂装懂,我试验过很多方法,根本不支持中文,我程序自己写的,我不懂env?
sonicno1
帖子: 13
注册时间: 2023-08-26 18:06
系统: ubuntu22.04

Re: ubuntu22.04使用subprocess创建新终端时不能使用中文输入法

#8

帖子 sonicno1 » 2023-09-03 18:37

你就直接你的环境能不能中文就行了。
onlylove
论坛版主
帖子: 5234
注册时间: 2007-01-14 16:23

Re: ubuntu22.04使用subprocess创建新终端时不能使用中文输入法

#9

帖子 onlylove » 2023-09-03 20:25

他是让你对比下你创建的subprocess的env和直接打开终端的env的输出,你比较过没有吗,比较过就把结果贴出来看看

还有,影响中文输入法的不是lang这个变量
3758.jpg
你说你试过很多种方法,都哪些方法,你也不说,这东西不用保密吧
sonicno1
帖子: 13
注册时间: 2023-08-26 18:06
系统: ubuntu22.04

Re: ubuntu22.04使用subprocess创建新终端时不能使用中文输入法

#10

帖子 sonicno1 » 2023-09-03 20:31

这用着我说?最简单的代码已经放出来,自己可以试一下,如果你们能在打开的新终端输入中文,就是我的环境问题,我以为这是ubuntu官网的提bug站点,原来不是。
sonicno1
帖子: 13
注册时间: 2023-08-26 18:06
系统: ubuntu22.04

Re: ubuntu22.04使用subprocess创建新终端时不能使用中文输入法

#11

帖子 sonicno1 » 2023-09-03 21:05

顺便说一下,是以root权限执行的python test.py
onlylove
论坛版主
帖子: 5234
注册时间: 2007-01-14 16:23

Re: ubuntu22.04使用subprocess创建新终端时不能使用中文输入法

#12

帖子 onlylove » 2023-09-03 21:11

我刚费好大力气装了个虚拟机,测试的输入中文没问题,你现在才说,root权限执行?你root用户能输入中文吗?root的环境变量和你现在能输入中文的用户环境变量一样吗?你用普通用户试过可以不?如果你普通用户试过,从一开始就要说明是root用户
sonicno1
帖子: 13
注册时间: 2023-08-26 18:06
系统: ubuntu22.04

Re: ubuntu22.04使用subprocess创建新终端时不能使用中文输入法

#13

帖子 sonicno1 » 2023-09-03 21:19

我的程序不支持普通用户执行,必须以root权限
sonicno1
帖子: 13
注册时间: 2023-08-26 18:06
系统: ubuntu22.04

Re: ubuntu22.04使用subprocess创建新终端时不能使用中文输入法

#14

帖子 sonicno1 » 2023-09-03 21:20

那为什么自己打开的终端在root权限下能输入中文
onlylove
论坛版主
帖子: 5234
注册时间: 2007-01-14 16:23

Re: ubuntu22.04使用subprocess创建新终端时不能使用中文输入法

#15

帖子 onlylove » 2023-09-03 21:36

等下我再试下看看

你说的root权限是用的什么方法
测试文件这样写的

代码: 全选

#!/usr/bin/python3
import subprocess

subprocess.Popen('gnome-terminal')
然后加上可执行权限
sudo ./test
根本就没有新terminal

我在另外一个系统上做的测试,能打开终端,不能输入中文的,因为环境变量不一样,没有输入法相关的设置

我那个ubuntu系统是新装的,除了输入法没动任何设置,另外一个系统不是ubuntu,有root用户密码
回复