Mac OS Big Sur下Python运行OR-Tools 9.8出现Segmentation fault问题
解决ortools在Mac Big Sur上出现Segmentation fault: 11的问题
可能的原因及对应解决方法
1. Python版本兼容性问题
ortools 9.8.3296对Python 3.12的支持在老版本Mac OS(Big Sur)上可能存在兼容性缺陷,建议降级Python到3.10或3.11版本:
- 使用pyenv安装指定版本:
pyenv install 3.11.6 pyenv local 3.11.6 - 在该环境下重新安装ortools:
pip install ortools==9.8.3296
2. 架构不匹配问题
Big Sur的x86_64与Apple Silicon架构存在兼容差异,针对性处理:
- 若为Intel芯片(x86_64):
pip install --force-reinstall --no-binary :all: ortools==9.8.3296 - 若为Apple Silicon芯片且通过Rosetta运行:
右键终端→获取信息→勾选“使用Rosetta打开”,重启终端后重新安装ortools并运行代码。
3. 系统依赖缺失
Big Sur自带库可能无法满足ortools运行需求,安装必要依赖:
brew install glpk brew install swig
重新安装ortools后测试运行。
4. 排查代码本身问题
先运行最小化测试代码,确认是否为ortools与系统的兼容性问题:
from ortools.linear_solver import pywraplp solver = pywraplp.Solver.CreateSolver('SCIP') if not solver: print('Solver not available') else: print('Solver initialized successfully')
若这段代码崩溃,说明是环境兼容问题;若正常运行,再逐步排查原装箱问题代码中的数据规模、变量定义等逻辑异常。
5. 升级ortools版本
尝试安装更新的ortools版本,查看是否修复了Big Sur上的兼容问题:
pip install --upgrade ortools
注意:升级后可能需要调整原代码中过时的API调用。
内容的提问来源于stack exchange,提问作者user23292886
相关产品推荐
相关产品推荐

