Отказ от ответственности: я noob.
Я установил Python 3.2 (r32: 88452) и ActiveTcl 8.5.9.2 (сборка 294317) на мой OSX 10.6. Оба установлены без каких-либо ошибок, и мне уже удалось запустить .PY через Terminal. Он работает нормально.
Я запускаю IDLE, и он не показывает никаких ошибок. Но всякий раз, когда я нажимаю клавишу цитаты ('), ничего не происходит. То же самое с нажатой клавишей [shift] ( "). Символы просто не регистрируются. То же самое происходит с клавишей" backtick "/tilde, [shift] или иначе.
Я использую раскладку клавиатуры в США.
Я попробовал открыть программу просмотра клавиатуры. Оба ключа, одинарная кавычка и "обратная сторона" имеют оранжевый цвет. (Я никогда не замечал этого до сих пор.) В любом другом приложении, когда они нажимаются, соответствующий символ вводится, но ничего не происходит из IDLE Python.
Любые идеи о том, что может произойти?
Дополнительная информация: интерпретатор Python в интерактивном режиме (запустив его из терминала) очень хорошо записывает обе клавиши. Кроме того, если я попытаюсь изменить раскладку клавиатуры на обычный "U.S", даже IDLE регистрирует ключи; но это больше похоже на обходной путь, и я хотел бы услышать ваши мнения.
IDLE использует Tkinter
из стандартной библиотеки Python для обеспечения функциональности графического интерфейса. Tkinter - это интерфейс для многоплатформенного графического интерфейса Tk
, входящего в состав Tcl/Tk
. К сожалению, Aqua Tk
в OS X в настоящее время не поддерживает все стандартные функции обработки текста в OS X.
Эта конкретная проблема представляет собой вариацию известной ошибки в Cocoa Aqua Tk. На обычной клавиатуре Apple U.S вы используете option U
+ <vowel>
для формирования диарезиса (например, ä
). Похоже, что на американской международной клавиатуре вместо option U
используется клавиша '
. В последних версиях ActiveState Tk 8.5 (включая тот, который вы установили) есть патч, который предотвращает сбой Tk в этом случае. Вы можете увидеть, как он "работал", запустив поставляемый Apple IDLE 2.6, включенный в Mac OS X 10.6 (/usr/bin/idle2.6
). Попробуйте ввести '
(с настройкой Международной клавиатуры) или option U
(с настройкой клавиатуры США)! Патч-версия просто игнорирует этот случай, а не сбой.
Лучше всего придерживаться метода ввода клавиатуры US
или US Extended
.
Переход на "простой США" не является обходным решением, а решением для вас, если вы по какой-то причине вам не захотите придерживаться формата U.S. International. Ниже приведены некоторые рекомендации по международной схеме США.
"
или '
? Или, как просит Игнасио, в другом приложении Tkinter. (Если вы находитесь в Windows, вы можете найти некоторые приложения Tkinter в каталоге Python. Сценарии или инструменты).
from Tkinter import *
из IDLE, и вот что я получил:>>> from Tkinter import * Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named Tkinter