已安装cplex并导入cplexerror,但仍有语法错误



我在以下行中遇到错误:

导入cplex从cplex.exceptions导入CplexErrordef-capAst_LP(prod,C,p,v,meta=无(:

# st = time.time()    
try:
my_prob = cplex.Cplex()
my_obj = list(p) #including the 0th coordinate
my_ub = [cplex.infinity for i in p] #omitting lb as 0
my_colnames = ['z_'+str(i) for i in range(prod+1)]
my_rhs = [1]+[0 for i in range(prod+1)]
my_rownames = ['sum2one','capaciy'] + ['lpr_'+str(i+1) for i in range(prod)]
my_sense = ''.join(['E']+['L' for i in range(prod+1)])
# print my_obj
# print my_ub
# print my_colnames
# print my_rhs
# print my_rownames
# print my_sense
my_prob.objective.set_sense(my_prob.objective.sense.maximize)
my_prob.variables.add(obj = my_obj, ub = my_ub, names = my_colnames)

# print my_prob.variables.get_lower_bounds()
# print my_prob.variables.get_upper_bounds()
# print my_prob.variables.get_names()
rows = []
rows.append([range(prod+1),[1 for i in range(prod+1)]])
vcoeff_vec = [-C]
for i in range(1,prod+1):
vcoeff_vec.append(round(v[0]*1.0/v[i],7))
rows.append([range(prod+1),vcoeff_vec])
for i in range(1,prod+1):
inequ_vec = [-v[i]]
for j in range(1,prod+1):
if j==i:
inequ_vec.append(v[0])
else:
inequ_vec.append(0)
rows.append([range(prod+1),inequ_vec])
# print rows
my_prob.linear_constraints.add(lin_expr = rows,
senses = my_sense,
rhs = my_rhs,
names = my_rownames)
my_prob.set_log_stream(None)
my_prob.set_error_stream(None)
my_prob.set_warning_stream(None)
my_prob.set_results_stream(None)
st = time.time() 
my_prob.solve()
except CplexError, exc:
print exc
return

除了CplexError,exc:打印exc返回

我已经安装了cplex,并且使用的是python 3.7。我将迭代代码。

文件"&";,线路304cplexError除外,exc:^SyntaxError:语法无效

Thks,

Wynton

except子句的语法不正确,请使用as将excotion分配给Python变量。

except CplexError as cpx:
print(cpx)
return

顺便说一句,你为什么不使用基于表达式的docplex?(https://pypi.org/project/docplex/)

最新更新