You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下Anaconda安装的Gurobi求解Pyomo模型缺失.sol文件报错求助

问题排查与解决方法

原因1:Pyomo求解器调用链路配置错误

当前报错栈显示Pyomo走了ASL(AMPL Solver Library)的调用链路,而非Gurobi原生接口,ASL链路依赖临时文件传递求解结果,容易出现读写异常,Windows上默认调用原生接口所以无此问题。
解决办法:

  • 显式指定Pyomo调用Gurobi原生接口,修改求解器初始化代码:
solver = SolverFactory('gurobi_direct')
  • 如果你使用solver_manager,确认调用的求解器标识为gurobi_direct,而非gurobi或者asl:gurobi。

原因2:临时文件被系统自动清理

Ubuntu默认/tmp目录为内存挂载的tmpfs,会定期清理长时间未访问的文件,你的模型运行数分钟才结束,求解过程中生成的临时结果文件可能被系统提前删除。
解决办法:

  • 手动指定Pyomo的临时文件存储路径到个人用户目录,避免被系统清理,在代码开头添加:
import pyomo.common.tempfiles
pyomo.common.tempfiles.tempfile_manager.tempdir = '/home/urafiee/pyomo_tmp'

提前创建目录并赋予读写权限:

mkdir -p /home/urafiee/pyomo_tmp
chmod 777 /home/urafiee/pyomo_tmp

原因3:Gurobi系统依赖缺失

Anaconda安装的Gurobi可能缺少Ubuntu下的动态依赖库,导致求解器运行中途崩溃退出,未生成结果文件。
解决办法:

  • 先单独测试Gurobi是否正常运行,终端执行:
gurobi.sh

如果无法正常进入交互界面,安装对应系统依赖:

sudo apt update
sudo apt install -y libgomp1 libgl1-mesa-glx

原因4:版本兼容性问题

Windows上的Pyomo、Gurobi版本组合适配正常,Ubuntu上的版本组合可能存在兼容冲突。
解决办法:

  • 核对Ubuntu上的版本和Windows环境保持一致:
conda list | grep pyomo
conda list | grep gurobi

如果版本不一致,用conda统一安装匹配版本即可。

内容的提问来源于stack exchange,提问作者AliRa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:15:03