2014-01-29 52 views
1

对于Django网站,我使用Thomas Finley的glpk Python库(http://tfinley.net/software/pyglpk/glpk.html#LPX)来求解整数线性程序。我遵循他的教程(请参阅http://tfinley.net/software/pyglpk/discussion.html中的“简单示例”或帖子底部)来构建我的实例,但在更新我的系统(以及我假设的python-glpk)之后,我现在得到以下错误:Python中的线性编程:'模块'对象没有属性'LPX'

之前,我试图与重写我的代码

import glpk   # Import the GLPK module 
lp = glpk.LPX()  # Create empty problem instance 
lp.name = 'sample'  # Assign symbolic name to problem 
lp.obj.maximize = True # Set this as a maximization problem 
lp.rows.add(3)   # Append three rows to this instance 
for r in lp.rows:  # Iterate over all rows 
r.name = chr(ord('p')+r.index) # Name them p, q, and r 
lp.rows[0].bounds = None, 100.0 # Set bound -inf < p <= 100 
lp.rows[1].bounds = None, 600.0 # Set bound -inf < q <= 600 
lp.rows[2].bounds = None, 300.0 # Set bound -inf < r <= 300 
lp.cols.add(3)   # Append three columns to this instance 
for c in lp.cols:  # Iterate over all columns 
    c.name = 'x%d' % c.index # Name them x0, x1, and x2 
    c.bounds = 0.0, None  # Set bound 0 <= xi < inf 
lp.obj[:] = [ 10.0, 6.0, 4.0 ] # Set objective coefficients 
lp.matrix = [ 1.0, 1.0, 1.0,  # Set nonzero entries of the 
       10.0, 4.0, 5.0,  # constraint matrix. (In this 
       2.0, 2.0, 6.0 ] # case, all are non-zero.) 
lp.simplex()   # Solve this LP with the simplex method 

----> 1 lp = glpk.LPX() 

AttributeError: 'module' object has no attribute 'LPX' 

如果要重现错误,你可以使用他的例子,我贴在这里(误差应尽快发生,因为第二行)另一个库(通过快速寻找一个我没有找到很多令人信服的东西),是否有一个简单的修复? (例如,这里使用的函数是否已重新命名为其他内容?) 在此先感谢您的帮助。

+0

按照http://stackoverflow.com/questions/11403932/python-attributeerror-module-object-has-no-attribute-serial,你尝试过'从glpk导入glpk'吗? – Caramiriel

+0

是的,我有,但是glpk.glpk没有“LPX”方法。 – user3078439

+0

您可以在对象上使用'help()'函数来获取更多关于这些信息的信息。尝试通过对其属性使用“help(glpk)”和“help”来查找LPX。 – User

回答

2

在最近的glpk版本中删除了不推荐使用的“LPX api”(以'lpx'开头的函数和常量)。 python绑定也需要更新。

+0

我希望复古兼容性更多的是一个对开发者的关注。这是一个真正的痛苦,我不得不阻止以前版本的glpk。 – user3078439

+0

是的,但另一方面,两个APIS共存了几年。我认为,这一过渡始于2006年。此外,还有一个兼容性标题可以将其返回。 – Thomas

+0

@ user3078439在哪里可以找到这个兼容性头文件? (请在http://stackoverflow.com/q/25266593/855050中回答) – becko

相关问题