【问题标题】:(Python, IDLE, Windows) Pressing Stack Viewer exits all IDLE windows(Python、IDLE、Windows)按 Stack Viewer 退出所有 IDLE 窗口
【发布时间】:2011-05-02 01:18:35
【问题描述】:

我在 Windows 7 上运行带有 IDLE 3.1.2 的 Python 3.1.2。当我尝试使用 Stack Viewer 时,蓝色文本和一个新窗口会在所有打开的 IDLE 窗口退出之前短暂出现(我没有时间阅读文本或新窗口)。这是我第一次使用 Stack Viewer。

这是正常行为吗?如何让 Stack Viewer 保持打开状态?

感谢您的帮助, 亚历克斯

【问题讨论】:

    标签: python windows windows-7 python-3.x python-idle


    【解决方案1】:

    此 IDLE 错误(仅限 3 系列)已于 2011 年 1 月 30 日修复。修复在 3.1.4 和 3.2 中。

    【讨论】:

      【解决方案2】:

      从documentation,堆栈查看器显示最后一个异常的堆栈回溯。所以也许在你的情况下,你正试图打开堆栈查看器,没有任何异常发生?

      >>> a
      
      Traceback (most recent call last):
        File "<pyshell#30>", line 1, in <module>
          a
      NameError: name 'a' is not defined
      

      如果您键入“a”并按 ENTER,则会发生异常。现在尝试打开堆栈查看器?

      【讨论】:

      • 它崩溃了。我可以在出现异常之前按下 Stack Viewer 按钮并且没有任何反应,并且我可以打开 Auto Open Stack Viewer。但是当我在发生异常(或它自动打开)时尝试使用它时,IDLE 崩溃。
      • 发生异常后显式调用 Stack Viewer 会发生什么。 (自动打开设置为 False)
      • IDLE 会短暂打开一个新窗口,然后所有 IDLE 窗口都会在我阅读内容之前退出。
      • 嗯,好的。对不起,不能帮助你更多。听起来很n00bish,但也许尝试重新安装? :)
      【解决方案3】:

      我没有 Windows,因此无法为您提供实践经验,但我会执行以下操作:

      • 查看单击 Idle 菜单项时运行的确切命令是什么(我认为您可以右键单击并查看其属性,或者至少在早期版本的 Windows 上可以)
      • 打开命令提示符,然后运行打开 Idle 的命令
      • 打开堆栈查看器,然后记下(应该!)出现在命令提示符窗口中的回溯
      • 在这里报告所说的回溯:)

      顺便说一句,在我的安装中(Windows 和 Python 3.x 都没有),尝试打开堆栈查看器而不进行回溯会产生以下消息框:

      • 标题:无堆栈跟踪
      • 消息:还没有堆栈跟踪。
        (sys.last_traceback 未定义)

      【讨论】:

      • 当我在 Lib\idlelib 中打开 idle.py 时,强制异常,并使用堆栈视图 IDLE 保持打开状态。这出现在命令提示符中:C:\Python31\Lib\idlelib>python idle.py *** Internal Error: rpc.py:SocketIO.localcall() Object: 45342064 Method: > Args: () Traceback(最近一次调用最后一次):文件“c:\Python31\lib\idlelib\rpc.py”,第 188 行,在 localcall ret = method(*args, * *kwargs) 文件“c:\Python31\lib\idlelib\RemoteObjectBrowser.py”,第 21 行,在 _GetSubList
      • return list(map(remote_object_tree_item, list)) TypeError: 'list' object is not callable Tkinter 回调 Traceback 中的异常(最后一次调用):文件“C:\Python31\Lib\tkinter_init_.py”,第 1399 行,在 call 中返回 self.func(*args) 文件“C:\Python31\Lib\idlelib\PyShell.py”,第 1171 行,在 open_stack_viewer 返回 self.interp.remote_stack_viewer() 文件“C:\Python31\Lib\idlelib\PyShell.py”,第 572 行,在 remote_stack_viewer node.expand() 文件“C:\Python31\Lib\idlelib\TreeWidget.py ",第 131 行,在展开 self.update()
      • 文件“C:\Python31\Lib\idlelib\TreeWidget.py”,第 170 行,更新 self.draw(7, 2) 文件“C:\Python31\Lib\idlelib\TreeWidget. py",第 184 行,在 draw sublist = self.item._GetSubList() File "C:\Python31\Lib\idlelib\RemoteObjectBrowser.py",第 36 行,在 _GetSubList 返回 [StubObjectTreeItem(self.sockio, oid) for oid in list] TypeError: 'NoneType' object is not iterable 当我只用鼠标打开 idle.py 时它也有效,但当我打开 python.pyw 时无效。我怀疑 IDLE 快捷方式指向 idle.pyw
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多