编辑:在 iomenu.py 中添加“import io”确实解决了这个问题。非常感谢特里!
原来的:
就像标题说的:我正在使用 IDLE (Windows) 在 python 中编写脚本,但它不会保存(ctrl+s、手动保存或退出时保存)。它不会卡住或崩溃,它只是不会保存(我可以通过 Windows 标题上文件名前的 * 来判断)。
经过一些尝试,我意识到只有当我在文本中使用带有变音符号的字母时才会发生这种情况(我是法语,所以它会是 éèêàç...)。一旦我更改了字母,我就可以再次保存,从而运行脚本。
记事本或 python shell 仍然可以正常工作。
不起作用的事情:
# -*- coding: UTF-8 -*-
我十天前才开始编码,所以我还是个新手,但我想这与编码有关吗?
这可能与新的 3.8.4 更新有关,因为它直到今天都运行良好。
我正在使用 Windows 10 64 位。
谢谢!
最佳答案
a) 添加 import io
到 <pythondir>/idlelib/iomenu.py
的顶部,或 b) 获得 3.8.5,今天发布,对 3.8.4 中的多个问题进行了热修复,包括这个问题。相同的答案适用于今天发布的 3.9.0b4 与 3.9.0b5。
编辑:在 3.8.5 和 3.9.0b5 中,编辑在 IDLE 之外创建的文件时保存失败和行尾仍然存在另一个问题。 imenu.py,第 251 行,当前是
if self.eol_convention != "\n":
将其更改为 if isinstance(self.eol_convention, str) and self.eol_convention != "\n":
编辑 2:最近发布的 3.8.6 和 3.9.0 解决了这两个问题。
关于python-3.x - IDLE 3.8.4 和 3.9.0b4 不会保存非 ascii 字符的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63000314/