繁体   English   中英

Mac Homebrew Idle3.7.1在Mojave 10.14 Beta上崩溃

[英]Mac homebrew Idle3.7.1 Crashes on Mojave 10.14 Beta

当我通过终端打开空闲窗口时,空闲窗口打开得很好,但是当我尝试在空闲窗口上滚动或对空闲窗口进行任何快速移动时,它立即崩溃并出现错误:

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似乎仍在使用旧版本。

虽然我不知道是什么原因,但我能够找到解决方案。

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.org重新安装python来解决此问题。 以前,我使用的是brew安装,这似乎已经引起了问题。

我今天刚刚将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识别较新的8.5.x,请参阅最后一节“ Python如何选择要使用的Tk库”。

显然,Mojave上的tk 8.6.8甚至存在问题。 Mac tk开发人员今天刚刚在Python跟踪器上写道,tk提示中有更改,以适应Mojave API的更改。 8.5不再被更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM