Python IDLE не принимает кавычки

1

Отказ от ответственности: я 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 регистрирует ключи; но это больше похоже на обходной путь, и я хотел бы услышать ваши мнения.

  • 0
    Это происходит в других приложениях Tk / TkInter?
  • 0
    Пожалуйста, потерпите меня: я изучаю Python и не знаю точно, что такое Tk / Tkinter. Но я попытался from Tkinter import * из IDLE, и вот что я получил: >>> from Tkinter import * Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named Tkinter
Показать ещё 2 комментария
Теги:
keyboard
python-idle

2 ответа

3
Лучший ответ

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.

  • 0
    Понимаю. Спасибо за напоминание о методе раскладки клавиатуры в США для акцентированных символов. Я попытаюсь подать это как ошибку. Спасибо всем за помощь.
  • 0
    Смотрите обновленный ответ и sourceforge.net/tracker/…
0

Переход на "простой США" не является обходным решением, а решением для вас, если вы по какой-то причине вам не захотите придерживаться формата U.S. International. Ниже приведены некоторые рекомендации по международной схеме США.

  • 0
    Клянусь, я не (намеренно, по крайней мере) троллинг, но я не думаю, что это должно быть поведение по умолчанию IDLE. Разве это не должно правильно определять мою раскладку клавиатуры и что означают мои нажатия клавиш клавиатуры?
  • 0
    Да, так и должно быть. Как он ведет себя, например, в таких приложениях, как «Блокнот», когда вы пытаетесь сделать " или ' ? Или, как просит Игнасио, в другом приложении Tkinter. (Если вы находитесь в Windows, вы можете найти некоторые приложения Tkinter в каталоге Python. Сценарии или инструменты).
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню