cp.installed_solvers显示CVXOPT已安装但调用时报未安装错误
问题排查与解决方案
核心原因
你遇到的报错属于提示信息误导:cp.installed_solvers()的检测逻辑仅判断CVXOPT基础包是否可导入,不会验证CVXOPT是否支持你当前的混合整数求解需求。你的代码里定义了boolean=True的整数变量,需要CVXOPT编译时集成GLPK整数求解组件,默认pip安装的CVXOPT通常不带该组件,因此触发了“未安装”的错误提示。
排查解决步骤
- 验证环境一致性
先在运行报错代码的同一份脚本中加入以下代码,确认运行环境和安装环境一致:
执行后获取到Python解释器路径,调用该路径对应pip工具执行import sys print(sys.executable)pip list | grep cvx(Linux/macOS)或pip list | findstr cvx(Windows),确认cvxpy、cvxopt都安装在当前运行环境中。 - 重装带完整功能的CVXOPT
先卸载原有cvxopt:pip uninstall -y cvxopt
推荐使用conda安装预编译好的带GLPK支持的CVXOPT版本:conda install -c conda-forge cvxopt - 临时替代方案
你的已安装求解器列表里包含专门用于混合整数规划的GLPK_MI,直接替换求解器参数即可正常运行,修改solve调用代码为:
该求解器针对整数规划场景适配性更好,稳定性高于CVXOPT的整数求解功能。prob.solve(solver=cp.GLPK_MI, verbose=True)
内容的提问来源于stack exchange,提问作者Abby.zhang
相关产品推荐
相关产品推荐

