如何解决尝试在spyder上使用GLPK运行时出错
我在尝试使用anaconda在spyder上运行一些python代码时遇到错误。代码很简单:
import picos
P = picos.Problem()
P.options.verbosity = 1
x = picos.IntegerVariable('x',2,lower = [0,0])
P.add_constraint(x[0] + x[1] <= 8)
P.set_objective('max',1*x[0] + 2*x[1])
print(P)
P.solve(solver="glpk")
print(x)
这是spyder的答案
runfile('/Users/Fermin/untitled0.py',wdir='/Users/Fermin')
------------------------------------------
Integer Linear Program
maximize x[0] + 2·x[1]
over
2×1 integer variable x (bounded below)
subject to
x[0] + x[1] ≤ 8
------------------------------------------
===================================
PICOS 2.0
===================================
Problem type: Integer Linear Program.
Searching a solution strategy for GLPK.
Traceback (most recent call last):
File "/Users/Fermin/untitled0.py",line 9,in <module>
P.solve(solver="glpk")
File "/Users/Fermin/opt/anaconda3/lib/python3.8/site-packages/picos/modeling/problem.py",line 1635,in solve
self._strategy = Strategy.from_problem(
File "/Users/Fermin/opt/anaconda3/lib/python3.8/site-packages/picos/modeling/strategy.py",line 187,in from_problem
raise RuntimeError(
RuntimeError: Selected solver GLPK is not available on the system.
奇怪的是,已经安装了glpsol。当我在终端上运行glpsol --version
时,我会得到一个答案(v4.65)。如果我运行which glpsol
,我将得到/Users/Fermin/opt/anaconda3/bin/glpsol
。
所以奇怪的是,即使它已安装在我的计算机上(是Mac),spyder也无法找到并使用它。我已经尝试过最简单的操作,例如重新启动程序和/或计算机,擦除所有内容并重新安装,等等。
感谢您的帮助。
解决方法
问题是我必须安装 swiglpk。
pip install swiglpk
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。