【问题标题】:Python IDLE not accepting quotesPython IDLE 不接受引号
【发布时间】:2011-04-27 07:47:25
【问题描述】:

免责声明:我是菜鸟。

我在我的 OSX 10.6 上安装了 Python 3.2 (r32:88452) 和 ActiveTcl 8.5.9.2 (build 294317)。两者都安装没有任何错误,我已经设法通过终端运行.PY。运行正常。

我运行 IDLE 并没有显示任何错误。但是每当我按下引号键 (') 时,什么都没有发生。按下 [shift] (") 也是如此。字符只是不注册。'反引号'/波浪号键也会发生同样的情况,按下 [shift] 或其他方式。

我使用的是美国国际键盘布局。

我已尝试打开键盘查看器。单引号和“反引号”这两个键都是橙色的。 (直到现在我才注意到这一点。)在任何其他应用程序中,只要单击它们,就会输入相应的字符——但在 Python IDLE 中没有任何反应。

对可能发生的事情有什么想法吗?

附加信息:交互模式下的 Python 解释器(从终端运行它)可以很好地注册两个键。此外,如果我尝试将键盘布局更改为纯“美国”,即使 IDLE 也会注册键;但这尝起来更像是一种解决方法,我想听听您的意见。

【问题讨论】:

  • 其他 Tk/TkInter 应用程序中是否会发生这种情况?
  • 请多多包涵:我正在学习 Python,但我不知道 Tk/Tkinter 到底是什么。但我从 IDLE 尝试了from Tkinter import *,这就是我得到的:>>> from Tkinter import * Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named Tkinter
  • 嘘。这与实际问题无关。似乎在 Python 3.1+ 中,“Tkinter”被命名为“tkinter”。
  • 这并不能解决您的 IDLE 问题,但您可以尝试 IPython:ipython.scipy.org/moin/FrontPage

标签: python keyboard python-idle


【解决方案1】:

IDLE 使用 Python 标准库中的 Tkinter 来提供 GUI 功能。 Tkinter 是多平台Tk 图形界面的接口,是Tcl/Tk 的一部分。不幸的是,OS X 上的 Aqua Tk 目前不支持 OS X 上的所有标准文本处理功能。

这个特殊问题似乎是 Cocoa Aqua Tk 中一个已知错误的变体。在普通的 Apple 美式键盘上,您使用 option U + <vowel> 来形成分音符(例如,ä)。看起来在美国国际键盘上,使用了' 键而不是缺少的option u。在最新的 ActiveState Tk 8.5 版本(包括您已安装的版本)中有一个补丁可以防止 Tk 在这种情况下崩溃。您可以通过启动 Mac OS X 10.6 (/usr/bin/idle2.6) 中包含的 Apple 提供的 IDLE 2.6 来了解它过去是如何“工作”的。尝试在那里输入'(使用国际键盘设置)或option U(使用美国键盘设置)!补丁版本只是忽略了这种情况,而不是崩溃。

最好的办法是坚持使用USUS Extended 键盘输入法。

【讨论】:

  • 我明白了。感谢您提醒我重音字符的美国键盘布局方法。我会尝试将其归档为错误。感谢大家帮助我。
  • 查看更新后的回复和sourceforge.net/tracker/…
【解决方案2】:

更改为“普通美国”不是解决方法,而是为您提供解决方案,除非您出于某种原因真的想坚持使用美国国际布局。这是美国国际版面的some guidelines

【讨论】:

  • 我发誓我不是(至少是故意的)拖钓,但我认为这不应该是 IDLE 的默认行为。它不应该正确识别我的键盘布局和键盘按键的含义吗?
  • 是的,应该。当您尝试执行"' 时,它在记事本等应用程序上的表现如何?或者正如 Ignacio 所要求的,在另一个 Tkinter 应用程序上。 (如果你在windows上,你可以在Python目录中找到一些Tkinter应用。Scripts或Tools)
  • 两个键的行为都符合预期:第一次按键注册为“死键”——如果我输入元音,任何应用程序都会输出重音字符;如果没有,它会输出引号/反引号/等。我选择了美国国际布局,因为我主要用葡萄牙语写作(因为我住在巴西),例如,如果我必须在字符串中使用重音字符,这会有点麻烦。我会尝试查找/测试另一个 Tkinter 应用程序。
  • 我看到您使用此布局的意图。对不起,我认为这是错误的。请尝试其他 tkinter 应用程序,如果您发现相同的问题,很可能是 Tkinter 类或 IDLE 中的错误,具体取决于您在其他应用程序中发现的行为。
猜你喜欢
  • 2019-09-26
  • 1970-01-01
  • 1970-01-01
  • 2011-04-26
  • 2015-01-13
  • 2014-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多