M1芯片MacOS Monterey系统Python3.9运行脚本触发段错误求助
解决M1 MacOS 12.6.1上Python3.9段错误(Segmentation fault:11)的方法
1. 验证Python3.9安装完整性
- 先测试Python基础运行是否正常:执行
python3.9 -c "print('Hello World')",如果该命令也崩溃,说明Python安装包已损坏。 - 卸载现有Python3.9,从Python官网下载适配M1架构的arm64版本安装包,重新覆盖安装后再测试脚本。
2. 排查第三方库兼容性
- 简化脚本至最小可复现版本:逐步注释代码块,定位触发崩溃的具体逻辑,锁定可能出问题的第三方依赖库。
- 重装适配arm64的库:先执行
pip3.9 uninstall [库名]卸载旧版本,再用pip3.9 install [库名]重装;若为源码编译的库,需添加架构前缀:ARCHFLAGS="-arch arm64" pip3.9 install [库名]。
3. 强制使用原生架构运行
- 检查Python二进制架构:执行
file $(which python3.9),确认输出是否为arm64(M1原生)。 - 强制用原生架构启动脚本:执行
arch -arm64 python3.9 script_name.py,排除Rosetta转译导致的兼容性问题。
4. 重置Python环境
- 清理缓存文件:删除脚本目录下的
__pycache__文件夹,以及用户目录下的~/.cache/pip文件夹。 - 创建虚拟环境隔离测试:执行
python3.9 -m venv test_env创建虚拟环境,激活后(source test_env/bin/activate)安装依赖并运行脚本,排除全局环境干扰。
5. 提取详细崩溃栈信息
- 打开系统「控制台」应用,搜索
python3.9的崩溃日志,查看完整栈追踪,定位到具体崩溃的函数或模块,进一步缩小问题范围。
内容的提问来源于stack exchange,提问作者Py-ser
相关产品推荐
相关产品推荐

