PySp-Pyomo error: 'dict' has no attribute 'f'

PySp-Pyomo error: 'dict' has no attribute 'f'

我是 promo 和 PySP 的新手。我正在尝试复制 https://projects.coin-or.org/Coopr/browser/pyomo.data/trunk/pyomo/data/pysp/vehicle_routing/3-7f?rev=9398&order=name 车辆路径问题下的随机编程教程的解决方案 但是随着 PS3-7b 的摘录,所有其他代码,一旦我复制到它们各自的文件夹和 运行 命令

`pyomo solve --solver=glpk ReferenceModel.py ReferenceModel.dat` 

抛出以下错误

[    0.00] Setting up Pyomo environment
[    0.00] Applying Pyomo preprocessing actions
[    0.78] Pyomo Finished
ERROR: Unexpected exception while loading model:
    'dict' object has no attribute 'f

' 已经困扰我好几天了。关于我做错了什么的任何帮助。

I am running Pyomo 4.3.11388 (Python 2.7.10 on Darwin 15.6.0) on MacBook Late 2008 model.

谢谢

尝试在命令末尾添加-c。它将为您提供显示错误来源的完整堆栈跟踪。

您还应该注意到,Coopr 项目已重命名为 Pyomo,我们现在托管在 Github 上。可以在 pyomo.org

找到最新的文档

编辑:

我仔细查看了那个示例,并修复了一些错误。您可以在此处找到更新后的代码:https://github.com/Pyomo/pyomo-model-libraries/blob/master/pysp/vehicle_routing/3-7b/ReferenceModel.py.

您应该注意,3-7b 设置为 运行 作为独立脚本。也就是说,你不应该 运行 它使用 pyomo 命令,而是 运行 它使用 Pyomo 安装到

中的 python 解释器
python ReferenceModel.py

如果您查看该文件的底部,您会看到以下代码:(1) 使用 .dat 文件创建具体实例,(2) 创建求解器并用它求解模型,以及 (3)通过在实例上打印 objective 和变量的值来查询解决方案。当您向它提供模型文件时,这基本上就是 pyomo 命令所做的,因此您不应该向它提供包含此类代码的模型文件。