Mac homebrew Idle3.7.1 Сбои в бета-версии Mojave 10.14 - PullRequest
0 голосов
/ 03 декабря 2018

Когда я открываю простоя через терминал, простоя открывается нормально, но как только я пытаюсь прокрутить окно простоя или сделать несколько быстрых движений окна простоя, он сразу же вылетает с ошибкой:

Traceback (most recent call last):
File "/usr/local/bin/idle3", line 5, in <module>
main()
File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/idlelib/pyshell.py", line 1552, in main
root.mainloop()
File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/tkinter/__init__.py", line 1283, in mainloop
self.tk.mainloop(n)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

Я попробовал команду brew reinstall python --with-tcl-tk безуспешно.Я получаю только ошибку Error: invalid option: --with-tcl-tk.Я попытался удалить и переустановить полностью несколько раз, но не повезло.Я использую Tk версии 8.5.9, я обновил это с brew, но кажется, что python все еще использует старую версию.

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

Хотя я не знаю, в чем причина, я смог найти решение.

В idlelib/editor.py

Если, вы комментируете строку 149, IDLE перестает работатьпри попытке прокрутки.

149    text.bind('<MouseWheel>', self.mousescroll)
150    text.bind('<Button-4>', self.mousescroll)
151    text.bind('<Button-5>', self.mousescroll)

Это должно быть изменено на:

149    ##text.bind('<MouseWheel>', self.mousescroll) # Now IDLE should work
150    text.bind('<Button-4>', self.mousescroll)
151    text.bind('<Button-5>', self.mousescroll)

Это также, кажется, ничего не нарушает, но устраняет проблему.

Вы можете найти этот файл, запустив

>>> import idlelib.editor
>>> idlelib.editor
<module 'idlelib.editor' from '/usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/lib/python3.7/idlelib/editor.py'>
>>>

Протестировано:

  • macOS Mojave 10.14.3

  • Python 3.7.2 (с brew install python)

  • Tcl / Tk (8.5.9)


Обновление

Проблема также была исправлена ​​переустановкой python с python.org .Ранее я использовал установку brew , которая, похоже, привела к проблеме.

0 голосов
/ 04 декабря 2018

Я только сегодня обновил свой Macbook Air до Mojave и Python 3.7.1, последний с установщиком PSF python.org, который устанавливает tcl / tk 8.6.8 и скомпилированный tkinter для работы с этим.Тесты IDLE проходят, а IDLE работает нормально, насколько я тестировал вручную.Я настоятельно рекомендую вам сделать то же самое.Я не могу поддерживать любую другую установку.

По моему мнению, https://www.python.org/download/mac/tcltk/ следует обновить, чтобы вызвать 8.5.9 «Не рекомендуется».См. Последний раздел «Как Python выбирает, какую библиотеку Tk использовать» о том, как заставить Python распознавать более новую версию 8.5.x

. Очевидно, что в Mojave есть даже проблемы с tk 8.6.8.Разработчик Mac tk только что написал на трекере Python сегодня, что в tk tip внесены изменения, учитывающие изменения в Mojave API.8.5 больше не обновляется.

...