如何在 Windows 机器上本地安装 CBC for Pyomo?

Posted

技术标签:

【中文标题】如何在 Windows 机器上本地安装 CBC for Pyomo?【英文标题】:How to install CBC for Pyomo locally on Windows machine? 【发布时间】:2020-07-08 07:29:31 【问题描述】:

我的目标是将开源 CBC 求解器与 Spyder 中的 Pyomo 连接起来。我正在使用 Windows 10 机器,由于公司政策,我不能使用 NEOS 服务器。

我已经从 Bintray (https://bintray.com/coin-or/download/Cbc#files) 下载了包含 cbc.exe 文件的二进制文件。但是,当尝试运行它时,会出现几个错误,指出我缺少文件(在其他 libbz2-1.dll 和 zlib1.dll 中)。我对 linux 或软件开发知之甚少,但在谷歌上呆了很长时间后,我了解到这些用于解包数据等。我在同一主题的开发人员聊天中找到了除 zlib1.dll 之外的所有文件,以及在另一个页面上找到的 zlib1.dll。但是在运行时,我现在收到错误消息:“应用程序无法正确启动 (0xc000007b)。

我也尝试下载 MSYS2 MinGW 并按照 CBC 的说明进行操作。我不知道我是否需要这个,或者它是否仅适用于开发人员。

谁能告诉我该怎么做?我怀疑除了我自己以外的其他人想在 Pyomo 中使用 CBC 作为 GLPK 的替代品。

【问题讨论】:

【参考方案1】:

你会发现一些一般信息here 我在其中概述了一些方法。

虽然这是针对 Clp,但它也适用于 Cbc。

我也观察到这有点奇怪,有些库不是静态链接的 (zlib),虽然它肯定是可行的。但正如线程中所提到的,这种情况不再是这样了(请参阅关于哪些文件是完全静态链接的的限制),因此你的观察很奇怪(你确实做到了不说,你下载的是哪个文件)。

所以我会尝试以下一个(按此顺序):

使用您的源代码重试,但坚持使用主版本(参见第一个链接),因为维护者只保证为这些版本提供完全静态的构建! 使用来自AMPL 的构建 (经过测试并为我工作;一般建议在构建的质量/稳定性方面) 使用来自coin-or/pulp 的构建,另一个python 建模工具 (经过测试并适合我) 使用 mingw64 从源代码编译 (使用任何构建并提供一些 zlib 和 co 的外部 dll -> 难以调试)

当然我完全忽略了其他潜在的问题:

license-stuff(这些构建的一部分) 不确定公司是否有能力使用二进制文件,而不是在法律方面自行构建 与 python 的版本兼容性 每个版本的 Cbc 都能正常工作 cbc版本+配置 现代版 多线程编译 ...

【讨论】:

【参考方案2】:

如果你已经有 .exe 文件,确保它在你当前的工作文件夹中(在 Spyder 中设置为工作目录,仅仅打开你的文件是不够的)并使用 SolveFactory 函数调用它:

opt = SolverFactory("cbc.exe")

results = opt.solve(model)

它对我有用。

【讨论】:

以上是关于如何在 Windows 机器上本地安装 CBC for Pyomo?的主要内容,如果未能解决你的问题,请参考以下文章

在本地windows机器上安装SecureCRT客户端

Windows 机器中的 UNIX/LINUX 本地主机服务器

microsoft ace oledb 12 未在本地机器上注册

如何从本地机器mysqldump远程数据库

如何在 windows(cmd) 上使用 composer 运行 phpunit 测试 [重复]

专栏 | 新手入门?一步一步教你如何安装PaddlePaddle