Apple Silicon(M2)设备上CPLEX/DOCPLEX运行时异常求助
M2芯片Mac上CPLEX Studio22.1架构兼容问题解决
已验证正常功能
- 可通过以下路径调用cplex和cpoptimizer交互工具,且能成功优化mp/cp示例:
cplex:/Applications/CPLEX_Studio221/cplex/bin/x86-64_osx/cplexcpoptimizer:/Applications/CPLEX_Studio221/cpoptimizer/bin/x86-64_osx/cpoptimizer
- 已通过以下命令完成cplex和docplex Python包安装:
python /Applications/CPLEX_Studio221/python/setup.py install oplrun运行正常
存在的问题
- 执行
python -m docplex.mp.check_list提示CPLEX库不可用,报错信息:dlopen(..., 0x0002): tried: ... (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e)))
- 已设置
PYTHONPATH=/Applications/CPLEX_Studio221/cplex/bin/x86-64_osx/,但docplex.mp.model仍无法正常工作 oplide无法执行
问题根源
CPLEX Studio22.1针对macOS仅提供x86_64架构的库,而M2芯片为arm64架构,原生arm64版本的Python无法加载x86_64动态库,导致docplex.mp相关功能失效;oplide无法运行同理。
解决步骤
1. 用Rosetta 2运行x86_64架构Python
- 打开终端时右键选择「使用Rosetta打开」,终端将以x86_64兼容模式运行
- 在该终端中重新安装cplex和docplex(确保使用x86_64版本Python):
python /Applications/CPLEX_Studio221/python/setup.py install - 运行检测命令验证:
python -m docplex.mp.check_list
2. 配置环境变量加载x86_64库
在Rosetta模式终端中设置PYTHONPATH:
export PYTHONPATH=/Applications/CPLEX_Studio221/cplex/bin/x86-64_osx/:$PYTHONPATH
若需永久生效,可将上述命令添加到~/.bash_profile或~/.zshrc文件中。
3. 兼容运行oplide
- 右键点击
oplide.app(路径:/Applications/CPLEX_Studio221/opl/bin/x86-64_osx/oplide.app),选择「显示简介」,勾选「使用Rosetta打开」,之后双击即可运行。 - 或通过Rosetta模式终端运行:
cd /Applications/CPLEX_Studio221/opl/bin/x86-64_osx/oplide.app/Contents/MacOS ./oplide
内容的提问来源于stack exchange,提问作者P. Kein
相关产品推荐
相关产品推荐

