最近,从 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 程序员,这很容易。