【问题标题】:Why does Python's IDLE crash when I type a parenthesis on Mac?为什么我在 Mac 上键入括号时 Python 的 IDLE 会崩溃?
【发布时间】:2016-03-17 06:28:37
【问题描述】:

好的,我意识到这可能是一个非常微妙的问题,但它一直困扰着我一段时间。我喜欢 IDLE 的简单脚本界面,但在以下情况下它总是崩溃:(1)我在外接显示器上编码,(2)我键入括号按钮“(”。IDLE 永远不会因为任何其他原因而崩溃比这种非常特殊的情况。奇怪的是,如果我连接了外接显示器,但我的笔记本电脑的主屏幕上有 IDLE dev 窗口,我的崩溃问题为零。(???)由于我丢失了大量代码解决这个问题。

我在 Mac OSX 版本 10.11.3 上运行,我有一台 MacBook Pro(Retina,15 英寸,2015 年中)任何想法都将不胜感激!

【问题讨论】:

  • 1.如果空闲,您使用的是哪个版本? 2.你用的是哪个版本的python? 3.你有没有在python bug thakker:bugs.python.org中搜索过你的问题?
  • 你好。在发布此问题之前,我今天刚刚从 python.org 更新了我的系统(Python3.5),但仍然遇到同样的问题。我正在使用 Python 3.5.1、Tk 8.5.9、IDLE 3.5.1。我刚刚搜索了你给我的链接。我能找到的最接近的相关问题在这里:bugs.python.org/issue16177 我要去看看这是否能让我到任何地方。
  • 这听起来像是你应该问 IDLE 的开发人员的问题。这不是编程问题。
  • python.org/download/mac/tcltk 强烈建议升级到更新版本的 tcl/tk。如果您这样做,请在问题上发布结果。或者回复这个评论,我会的。如果您的解决方法不是问题,请将其发布给下一个有问题的人。

标签: python macos tkinter crash python-idle


【解决方案1】:

好的,回答我自己的问题。根据 Андрей 的建议,我在这里查看了笔记和 cmets:http://bugs.python.org/issue16177 我做了一些实验并想出了一个解决方法来避免这个问题。仅当您在外部监视器中编码并且外部监视器的“排列”设置为相对于主监视器更高(或升高)时,才会出现此问题。具体来说,当空闲开发窗口完全或几乎完全位于辅助屏幕上的某个空间中时,该空间将被视为主屏幕上边缘的“北”。因此,该补丁将重新配置 Mac 上的“排列”设置,以便显示器以接近水平的方式系统对齐。这可能会让事情变得不那么自然,但它会解决问题。话虽如此,我不知道问题的根本原因是什么。我很高兴终于解决了这个问题。希望这至少可以帮助另一个人。

【讨论】:

  • 天才。优秀的。几周前我刚开始遇到这个问题。无法执行然后在运行的内容上使用交互式 shell 非常烦人。这立即解决了括号=崩溃问题。谢谢!
  • 只是补充一下,我使用 3 个屏幕,主 [笔记本电脑] 屏幕 (1) 是/曾经“低于” (2) 和 (3)。即使主屏幕 ( 1) 不触摸您空闲打开的屏幕 - 就像 (3)。
【解决方案2】:

我找到了解决办法!一种不需要更改显示器设置。

在空闲状态:

选项菜单 > 配置扩展 > 呼叫提示 > 设置为 FALSE

然后重启。

经过大量研究,找到了超级简单的解决方案...问题不是由 IDLE 中的错误引起的,而是由在默认监视器上方的外部监视器中调用 calltips 时 mac 的 Tcl/Tk 代码中的错误引起的。

【讨论】:

    【解决方案3】:

    在函数名称后键入 '(' 应该会显示一个调用提示,如果该函数当前已知,则给出该函数的签名。通过偶尔运行您的代码可以知道函数。我们最近发现 Mac OSX 或MacOS 和 tcl/tk 需要在 idlelib/calltip_w.py (3.6+) 或 idlelib/CallTipWindow.py (3.5-) 中添加一行。Issue 34275

        self.label.pack()  # Line 74
        tw.update_idletasks()  # ADD THIS LINE!
        tw.lift()
    

    没有这个,calltip不会出现。我不知道这是否也可以防止人们报告的任何崩溃。如果上述方法不起作用,请删除_idletasks 并在评论中告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      • 2023-03-19
      • 1970-01-01
      相关资源
      最近更新 更多