Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 怠速2.7.11/12“;名称错误:全局名称';顶层';“未定义”;_Python 2.7_Updates_Python Idle - Fatal编程技术网

Python 2.7 怠速2.7.11/12“;名称错误:全局名称';顶层';“未定义”;

Python 2.7 怠速2.7.11/12“;名称错误:全局名称';顶层';“未定义”;,python-2.7,updates,python-idle,Python 2.7,Updates,Python Idle,我在基于Oracle VB的Debian操作系统上运行了APT-GET更新。当它运行时,我在IDLE 2.7.12中乱搞了一些python代码(我用终端打开了它)。更新完成后,我尝试保存代码。在我空闲打开的终端中,我得到了一个错误。上面说: root@kali:~#空闲 空闲打开,我加载代码,编辑代码,然后单击[文件][保存] 这种情况会发生 Exception in Tkinter callback Traceback (most recent call last): File "/usr

我在基于Oracle VB的Debian操作系统上运行了APT-GET更新。当它运行时,我在IDLE 2.7.12中乱搞了一些python代码(我用终端打开了它)。更新完成后,我尝试保存代码。在我空闲打开的终端中,我得到了一个错误。上面说:

root@kali:~#空闲

空闲打开,我加载代码,编辑代码,然后单击[文件][保存]

这种情况会发生

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1545, in __call__
    return self.func(*args)
  File "/usr/lib/python2.7/idlelib/ScriptBinding.py", line 140, in run_module_event
    filename = self.getfilename()
  File "/usr/lib/python2.7/idlelib/ScriptBinding.py", line 205, in getfilename
    self.editwin.io.save(None)
  File "/usr/lib/python2.7/idlelib/IOBinding.py", line 345, in save
    if self.writefile(self.filename):
  File "/usr/lib/python2.7/idlelib/IOBinding.py", line 378, in writefile
    chars = self.encode(self.text.get("1.0", "end-1c"))
  File "/usr/lib/python2.7/idlelib/IOBinding.py", line 450, in encode
    dialog = EncodingMessage(self.editwin.top, enc)
  File "/usr/lib/python2.7/idlelib/IOBinding.py", line 76, in __init__
    self.root = top = Toplevel(master)
NameError: global name 'Toplevel' is not defined


我已经尝试重新启动VB,并且卸载、自动清理,然后重新安装IDLE,但没有成功。

问题是IDLE更新版本中存在错误。在
../Lib/idlelib/IOBinding.py
顶部附近添加以下内容,例如在
导入tkFileDialog
之前

from Tkinter import *
NameError出现在一个函数中,该函数显示警告并显示以下消息:

Non-ASCII found, yet no encoding declared. Add a line like
-*- coding: <enc> -*-
Choose OK to save this file as <enc>
Edit your general options to silence this warning
找到非ASCII码,但未声明编码。添加一行,如
-*-编码:-*-
选择“确定”将此文件另存为
编辑常规选项以使此警告静音
其中
将是一种编码,如
utf-8

我突然想到,如果消息指向Python语言参考,第2.1.4节,编码声明,那么它可能对初学者更有帮助

这个bug是2.x特有的,因为在Python3中,utf-8是在没有编码声明的情况下使用的默认值。

openidle
选项
配置空闲
一般性
设置“默认源编码”:UTF-8

我在Windows10和Ubuntu 16.04上运行Python 2.7.12,这解决了我在两个操作系统上的保存/崩溃空闲问题


为什么我觉得他们想把我们从Python 2-3中甩出去?!jk.

kali始终是一个不稳定/测试分布。接受它吧。我有点希望如果没有其他解决方案,有一种方法可以恢复到一个更稳定的版本,这就是最终的情况。IDLE bug。请参阅解释标题更改的答案(正在编写)。问题已在2.7.13中修复,已在2.7.13中修复。