M1 Mac环境下PySimpleGUI导入时栈溢出错误求助
解决M1 Mac上PySimpleGUI栈溢出错误
问题描述
在M1 Mac设备上使用PyCharm开发Python待办列表应用,导入PySimpleGUI时触发_Py_CheckRecursiveCall: Cannot recover from stack overflow致命Python错误。通过PyCharm内置包管理器重新安装模块后问题仍存在,期望程序正常运行并返回Process finished with exit code 0。
错误栈信息
Fatal Python error: _Py_CheckRecursiveCall: Cannot recover from stack overflow. Python runtime state: initialized Current thread 0x00000001d7a61c40 (most recent call first): File "<frozen importlib._bootstrap_external>", line 1381 in _get_spec File "<frozen importlib._bootstrap_external>", line 1414 in find_spec File "<frozen importlib._bootstrap>", line 925 in _find_spec File "<frozen importlib._bootstrap>", line 982 in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 1007 in _find_and_load File "<frozen importlib._bootstrap>", line 228 in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1058 in _handle_fromlist File "obf_Cleaned_PySimpleGUI50_source.py", line 674 in __GTIve4UA_from_global_variable File "obf_Cleaned_PySimpleGUI50_source.py", line 651 in __GTIve4UA File "obf_Cleaned_PySimpleGUI50_source.py", line 79 in __38ENUi File "obf_Cleaned_PySimpleGUI50_source.py", line 694 in __ZgKqhDx File "obf_Cleaned_PySimpleGUI50_source.py", line 204 in __k0vNO1JG File "obf_Cleaned_PySimpleGUI50_source.py", line 975 in __oR3kmMP4 File "/Users/nishantbhavsar/PycharmProjects/ToDoList_APP/venv/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 17471 in StartupTK File "/Users/nishantbhavsar/PycharmProjects/ToDoList_APP/venv/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 10213 in _Show File "/Users/nishantbhavsar/PycharmProjects/ToDoList_APP/venv/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 10480 in _read File "/Users/nishantbhavsar/PycharmProjects/ToDoList_APP/venv/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 10402 in read File "/Users/nishantbhavsar/PycharmProjects/ToDoList_APP/venv/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 21738 in _error_popup_with_code File "/Users/nishantbhavsar/PycharmProjects/ToDoList_APP/venv/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 21697 in _error_popup_with_traceback File "/Users/nishantbhavsar/PycharmProjects/ToDoList_APP/venv/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 16556 in PackFormIntoFrame File "obf_Cleaned_PySimpleGUI50_source.py", line 985 in __oR3kmMP4 File "/Users/nishantbhavsar/PycharmProjects/ToDoList_APP/venv/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 17471 in StartupTK File "/Users/nishantbhavsar/PycharmProjects/ToDoList_APP/venv/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 10213 in _Show File "/Users/nishantbhavsar/PycharmProjects/ToDoList_APP/venv/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 10480 in _read File "/Users/nishantbhavsar/PycharmProjects/ToDoList_APP/venv/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 10402 in read File "/Users/nishantbhavsar/PycharmProjects/ToDoList_APP/venv/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 21738 in _error_popup_with_code File "/Users/nishantbhavsar/PycharmProjects/ToDoList_APP/venv/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 21697 in _error_popup_with_traceback File "/Users/nishantbhavsar/PycharmProjects/ToDoList_APP/venv/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 16556 in PackFormIntoFrame ... Process finished with exit code 134 (interrupted by signal 6: SIGABRT)
当前导入代码
import functions import tkinter import PySimpleGUI
解决方案
1. 彻底清理后重装指定版本PySimpleGUI
- 激活项目虚拟环境,执行卸载命令:
pip uninstall -y PySimpleGUI - 手动删除虚拟环境中残留的PySimpleGUI目录:
rm -rf /Users/nishantbhavsar/PycharmProjects/ToDoList_APP/venv/lib/python3.9/site-packages/PySimpleGUI - 安装对M1兼容性较好的版本:
pip install PySimpleGUI==4.60.5
2. 切换PySimpleGUI后端
替换原导入代码,使用Qt后端替代默认的TK后端:
import functions import PySimpleGUIQt as sg
3. 升级Python版本
将项目虚拟环境的Python版本从3.9升级到3.10及以上,M1芯片对高版本Python的兼容性更优。重新创建虚拟环境后,再安装PySimpleGUI即可。
内容的提问来源于stack exchange,提问作者Nishant Bhavsar
相关产品推荐
相关产品推荐

