爱收集资源网

Mac系统下的IDLE不能输入中文有两种情况解决方法

网络整理 2022-05-15 03:03

我刚刚解决了这个问题。之前在找解决方法的时候发现了这个问题,所以在这里分享一下解决方法。

Mac系统下IDLE不能输入中文有两种情况:

第一种情况是IDLE下中文输入法无效,中文输入法选词框无法显示。 在这种情况下打开 IDLE 会显示警告:

"警告:正在使用的 Tcl/Tk (8.5.9) 版本可能不稳定。"

这是因为IDLE接口使用的Tkinter图形库需要依赖Tcl/Tk,而Mac系统自带的Tcl/Tk版本太低。导致不兼容问题。(

在 Mac OS X 上使用 Tcl/Tk 的 IDLE 和 tkinter

)

解决方法是下载安装新版本的Tcl /Tk,下载地址:

ActiveTcl 下载

.

如果使用 Homebrew,可以使用 brew install tcl-tk 安装新版本的 Tcl/Tk(如果使用 Homebrew 安装 Python无法输入文字怎么办,可以添加 --with-tcl-tk 选项安装 Tcl/Tk同时:brew install python --with-tcl-tk)。

Section 第二种情况是在IDLE的交互模式下输入中文,会提示“Unsupported characters in input”。

根据

在 IDLE 中输入 UTF-8 字符

说,这是因为IDLE在交互模式下输入非ascii字符时,IDLE会根据电脑上的locale设置判断编码,然后在运行前使用这种编码对输入的非ascii字符进行转换。测试后来发现,不管我把Mac系统的语言设置成中文还是英文,直接运行IDLE的时候,代码总是'us-ascii',不支持非ascii中文的转换,所以一个报错。需要改成'utf-8'编码支持中文输入。

我之前在 StackOverflow 上找到了解决方法(

无法输入文字怎么办

python - 带有 csvwriter 的 UnicodeEncodeError

),通过在 IDLE 的源代码中插入一行代码,强制将 IDLE 在交互模式下使用的编码更改为 'utf-8'。

但后来我发现了一个更简单的方法,就是将IDLE环境变量“LANG”设置为“en_US.UTF-8”无法输入文字怎么办,将IDLE在交互模式下使用的编码改为'utf-8'。

改变IDLE环境变量的方法有很多,我使用的方法如下:

1. 右击IDLE.app程序文件打开包内容,打开编辑器里面的IDLE.app/Contents/MacOS/IDLE文件。

2. 在 os.environ["PYTHONEXECUTABLE"] = 大约第 24 行的可执行代码上方添加一行代码:

os.environ["LANG"] = "en_US.UTF-8"

3.保存文件,重新打开IDLE输入中文。

(保存文件时可能会遇到权限问题。可以尝试使用第三方编辑器如Sublime Text编辑文件。保存时应该会弹出一个窗口要求输入用户密码,然后就可以保存成功了。)

我改IDLE源码老方法的步骤如下:

1. 首先,找到你计算机上运行的 Python IDLE。对于内置库的位置,可以通过以下命令获取os.pyc的路径,其所在的文件夹就是Python内置库的位置。

import os
print os.__file__

2. 在这个路径下找到idlelib文件夹,打开里面的IOBinding.py文件。在大约第 68 行的 encoding = encoding.lower() 代码下方添加一行代码:

encoding = "utf-8"

3.保存文件,重新打开IDLE输入中文。

tk mac python