cplex - 已安装 cplex 并导入 cplexerror 但仍有语法错误
问题描述
我在以下几行中遇到错误:
从 cplex.exceptions 导入 cplex 导入 CplexError def capAst_LP(prod, C, p, v, meta = None):
# 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: print exc return
我已经安装了 cplex,我正在使用 python 3.7。我将迭代代码。
文件“”,第 304 行,除了 cplexError,exc:^ SyntaxError:无效语法
谢谢,
温顿
解决方案
except 子句的语法不正确,用于as
将 exceotion 分配给 Python 变量。
except CplexError as cpx:
print(cpx)
return
顺便说一句,你为什么不使用基于表达式的 docplex?(https://pypi.org/project/docplex/)
推荐阅读
- c# - 在异步任务中包装同步代码的性能
- r - summary.connection(connection) 中的错误:运行 GeoLift 示例时连接无效
- python - 试图创建 3.6.3 venv 但 linux 服务器有 python 版本 3.6.12
- spring-boot - 使用 Maven 提供的弹簧配置文件运行 SpringBootTest
- sql - 使用 information_schema 选择所有列
- python - 尝试根据条件填充 NaN 值
- r - R中的Fisher Exact检验不提供优势比
- pandas - 标记空行,不包括空白行pyspark
- apache-spark - 如果文件大小大于 spark 中的驱动程序大小会怎样?
- .net-6.0 - 为什么升级到 .Net 6 会导致 HTTP 错误 500.31 - 无法加载 ASP.NET Core 运行时