IDLE 2.7.5+ 在 Ubuntu 13.10 中不起作用

IDLE 2.7.5+ 在 Ubuntu 13.10 中不起作用

最近,从 Ubuntu 13.04 升级到 13.10 后,我无法在 IDLE 2.7 中打开 .py 文件。当我单击“文件 - 最近的文件 - file.py”时,我得到了一个空窗口。在这个窗口中没有代码,我无法正常关闭它,只能通过终端中的“pkill idle”关闭它。

当我尝试通过空闲终端打开file.py时:

idle path_to_file/file.py

我得到:

回溯(最近一次调用最后一次):

File "/usr/bin/idle", line 5, in <module>
    main()
File "/usr/lib/python2.7/idlelib/PyShell.py", line 1536, in main
    if flist.open(filename) is None:
File "/usr/lib/python2.7/idlelib/FileList.py", line 36, in open
    return self.EditorWindow(self, filename, key)
File "/usr/lib/python2.7/idlelib/PyShell.py", line 131, in __init__
    EditorWindow.__init__(self, *args)
File "/usr/lib/python2.7/idlelib/EditorWindow.py", line 323, in __init__
    io.loadfile(filename)
File "/usr/lib/python2.7/idlelib/IOBinding.py", line 258, in loadfile
    chars = self.decode(chars)
File "/usr/lib/python2.7/idlelib/IOBinding.py", line 296, in decode
    enc = coding_spec(chars)
File "/usr/lib/python2.7/idlelib/IOBinding.py", line 129, in coding_spec
    for line in lst:
NameError: global name 'lst' is not defined

我需要帮助,我无法在 IDLE 中处理我的 .py 文件!

谢谢大家,并向大家致以最良好的祝愿。

答案1

这是一个已知的漏洞。该问题已在 idle 2.7.6 中修复,但您可以轻松地(*) 自行修复该问题。

使用您喜欢的编辑器以 root 身份打开文件 /usr/lib/python/idelib/IOBinding.py:

sudo gedit /usr/lib/python2.7/idlelib/IOBinding.py

转到第 128 行并更改:

str = str.split("\n", 2)[:2]

到:

lst = str.split("\n", 2)[:2]

并保存文件。

(*)如果你是一名 Python 程序员,这很容易。

相关内容