Python IDLE не принимает кавычки - PullRequest
1 голос
/ 27 апреля 2011

Отказ от ответственности: я нуб.

Я установил Python 3.2 (r32: 88452) и ActiveTcl 8.5.9.2 (сборка 294317) на мою OSX 10.6. Оба установлены без каких-либо ошибок, и мне уже удалось запустить .PY через Терминал. Все работает хорошо.

Я запускаю IDLE, и он не показывает никаких ошибок. Но всякий раз, когда я нажимаю клавишу кавычки ('), ничего не происходит. То же самое с нажатой клавишей [shift] ("). Символы просто не регистрируются. То же самое происходит с клавишей 'backtick' / тильда, нажатой клавишей [shift] или другим способом.

Я использую раскладку клавиатуры в США.

Я пытался открыть программу просмотра клавиатуры. Обе клавиши, одинарные кавычки и обратная пометка, оранжевого цвета. (Я никогда не замечал этого до сих пор.) В любом другом приложении, когда они нажимаются, вводится соответствующий символ - но внутри Python IDLE ничего не происходит.

Есть идеи о том, что может происходить?

Дополнительная информация: интерпретатор Python в интерактивном режиме (запускает его из терминала) регистрирует оба ключа очень хорошо. Кроме того, если я пытаюсь изменить раскладку клавиатуры на обычное «U.S.», даже IDLE регистрирует клавиши; но это больше похоже на обходной путь, и я хотел бы услышать ваше мнение.

Ответы [ 2 ]

3 голосов
/ 27 апреля 2011

IDLE использует Tkinter из стандартной библиотеки Python для обеспечения функциональности графического интерфейса. Tkinter - это интерфейс мультиплатформенного графического интерфейса Tk, часть Tcl/Tk. К сожалению, Aqua Tk в OS X в настоящее время не поддерживает все стандартные функции обработки текста в OS X.

Эта конкретная проблема, кажется, является разновидностью известной ошибки в Cocoa Aqua Tk. На обычной клавиатуре Apple в США вы используете option U + <vowel> для формирования диареза (например, ä). Похоже на клавиатуре США International, вместо отсутствующей option u используется клавиша '. В самых последних версиях ActiveState Tk 8.5 (включая ту, что вы установили) есть патч, который предотвращает сбой Tk в этом случае. Вы можете увидеть, как он «работал», запустив IDLE 2.6 от Apple, поставляемую с Mac OS X 10.6 (/usr/bin/idle2.6). Попробуйте набрать ' (с настройкой международной клавиатуры) или option U (с настройкой клавиатуры США)! Исправленная версия просто игнорирует этот случай, а не дает сбой.

Лучше всего придерживаться метода ввода с клавиатуры US или US Extended.

0 голосов
/ 27 апреля 2011

Переключение на "обычные США" - это не обходной путь, а решение для вас, если вы по какой-то причине не хотите придерживаться международного макета США. Вот некоторые рекомендации по международной разметке США.

...