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



我的目标是将开源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的替代品。

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

opt = SolverFactory("cbc.exe")
results = opt.solve(model)

它对我有用。

您将在这里找到一些一般信息,我在其中概述了一些方法。

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

正如我所观察到的,有点奇怪的是,有些lib不是静态链接的(zlib(,而它确实是可行的。但正如线程中所提到的,不应该再出现这种情况(请参阅关于哪些文件完全静态链接的限制(,因此您的观察结果很奇怪(您没有说明下载了哪个文件(。

因此,我将尝试以下之一(按此顺序(:

  • 请重试您的源代码,但要坚持使用主版本(请参阅第一个链接(,因为维护人员只能保证这些版本的完全静态构建
  • 使用AMPL中的构建
    • (已测试并适用于我;一般建议在构建的质量/稳定性方面(
  • 使用coin或/purp构建,这是python的另一个建模工具
    • (已测试并适用于我(
  • 使用mingw64从源代码编译
  • (使用任何构建并提供一些zlib和co->的外部dll,很难调试(

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

  • 许可证内容(这些构建的一部分是什么(
    • 不确定一家公司是否有能力使用二进制文件,而不是在法律方面自行构建二进制文件
  • 与python的版本兼容性
    • 执行Cbc的每个版本
  • cbc版本+配置
    • 现代版
    • 使用多线程编译

我在windows 11上为pyomo安装cbc时也遇到了问题。我不断地出现错误,比如:Solver (cbc) did not exit normally等。以下是一个循序渐进的过程,最终对我有效(供我和其他人将来参考(。

  1. 访问AMPL网站,下载mswin64(coin.mswin64.YYYYMMDD(的二进制硬币

  2. 将内容提取到任何临时文件夹

  3. 复制所有内容并将其粘贴到环境的bin文件夹中。通常位于:

    C: \Users\user\anaconda3\envs\my_env\Library\bin

  4. 打开my_env的anaconda cmd并通过键入:pyomo help -s获得可用解算器的列表(在解算器名称之前查找"+"符号(

最新更新