Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Mac自制Idle3.7.1在Mojave 10.14测试版上崩溃_Python_Crash_Python Idle_Macos Mojave - Fatal编程技术网

Python Mac自制Idle3.7.1在Mojave 10.14测试版上崩溃

Python Mac自制Idle3.7.1在Mojave 10.14测试版上崩溃,python,crash,python-idle,macos-mojave,Python,Crash,Python Idle,Macos Mojave,当我通过终端打开idle时,idle将正常打开,但当我尝试滚动idle窗口或稍微快速移动idle窗口时,它会立即错误地崩溃: 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.

当我通过终端打开idle时,idle将正常打开,但当我尝试滚动idle窗口或稍微快速移动idle窗口时,它会立即错误地崩溃:

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
回溯(最近一次呼叫最后一次):
文件“/usr/local/bin/idle3”,第5行,在
main()
文件“/usr/local/ceral/python/3.7.1/Frameworks/python.framework/Versions/3.7/lib/python3.7/idlelib/pyshell.py”,主文件第1552行
root.mainloop()
文件“/usr/local/ceral/python/3.7.1/Frameworks/python.framework/Versions/3.7/lib/python3.7/tkinter/__init___;.py”,第1283行,在主循环中
self.tk.mainloop(n)
UnicodeDecodeError:“utf-8”编解码器无法解码位置0中的字节0xff:无效的开始字节
我尝试了命令
brew重新安装python——使用tcl-tk
,但没有成功。我只得到错误
错误:无效选项:--with tcl tk

我尝试卸载和重新安装完全没有运气几次。我使用的是Tk版本8.5.9,我已经用brew对其进行了更新,但python似乎仍在使用旧版本

我今天刚刚将Macbook Air更新为Mojave和Python 3.7.1,后者使用PSF Python.org安装程序,该安装程序安装了tcl/tk 8.6.8和编译后的tkinter。闲置测试通过,闲置运行正常,因为我手动测试。我强烈建议你也这样做。我无法支持任何其他安装

我认为,应更新为8.5.9“不推荐”。关于如何让Python识别更新的8.5.x,请参阅最后一节“Python如何选择要使用的Tk库”


显然,在莫哈韦,tk 8.6.8甚至存在问题。MacTk开发人员今天刚刚在Python跟踪器上写道,tk技巧中有一些变化,以适应MojaveAPI的变化。8.5不再更新

我今天刚刚将Macbook Air更新为Mojave和Python 3.7.1,后者使用PSF Python.org安装程序,该安装程序安装了tcl/tk 8.6.8和编译后的tkinter。闲置测试通过,闲置运行正常,因为我手动测试。我强烈建议你也这样做。我无法支持任何其他安装

我认为,应更新为8.5.9“不推荐”。关于如何让Python识别更新的8.5.x,请参阅最后一节“Python如何选择要使用的Tk库”


显然,在莫哈韦,tk 8.6.8甚至存在问题。MacTk开发人员今天刚刚在Python跟踪器上写道,tk技巧中有一些变化,以适应MojaveAPI的变化。8.5不再更新

虽然我不知道原因是什么,但我还是找到了解决办法

idlelib/editor.py中

如果您注释掉第149行,当您尝试滚动时,IDLE停止崩溃

149文本绑定(“”,self.mousescroll)
150文本绑定(“”,self.mousescroll)
151文本绑定(“”,self.mousescroll)
这需要更改为:

149##text.bind(“”,self.mousescroll)#现在空闲应该可以工作了
150文本绑定(“”,self.mousescroll)
151文本绑定(“”,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'>
>>>
导入idlelib.editor >>>idlelib.editor >>>
测试:

  • 马科斯莫哈韦10.14.3

  • Python 3.7.2(来自
    brew安装Python

  • Tcl/Tk(8.5.9)


更新

通过从重新安装python,该问题也得到了纠正。
以前我使用的是一个安装,这似乎导致了问题。

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

idlelib/editor.py中

如果您注释掉第149行,当您尝试滚动时,IDLE停止崩溃

149文本绑定(“”,self.mousescroll)
150文本绑定(“”,self.mousescroll)
151文本绑定(“”,self.mousescroll)
这需要更改为:

149##text.bind(“”,self.mousescroll)#现在空闲应该可以工作了
150文本绑定(“”,self.mousescroll)
151文本绑定(“”,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'>
>>>
导入idlelib.editor >>>idlelib.editor >>>
测试:

  • 马科斯莫哈韦10.14.3

  • Python 3.7.2(来自
    brew安装Python

  • Tcl/Tk(8.5.9)


更新

通过从重新安装python,该问题也得到了纠正。
以前我使用的是一个安装,这似乎导致了问题。

请注意,
brew重新安装python--with tcl tk
不再受支持。brew不再允许安装参数。请注意,不再支持
brew重新安装python——使用tcl tk
。brew不再允许安装参数。