如何在Windows本地机器上安装用于Pyomo的CBC?

4
我的目标是将开源CBC求解器与Spyder中的Pyomo连接起来。我正在使用Windows 10机器,由于公司政策的原因,无法使用NEOS服务器。
我从Bintray(https://bintray.com/coin-or/download/Cbc#files)下载了包含cbc.exe文件的二进制文件。然而,在尝试运行它时,会出现几个错误,指出我缺少文件(其中包括libbz2-1.dll和zlib1.dll等)。我不太了解Linux或软件开发,但经过长时间在Google上的搜索,我了解到这些文件用于解压缩数据等其他操作。我在同一主题的开发人员聊天中找到了除zlib1.dll之外的所有文件,并在另一个页面上找到了zlib1.dll。然而,现在运行时出现错误:“应用程序无法正确启动(0xc000007b)”。
我还尝试下载了MSYS2 MinGW,并按照CBC的说明进行了操作。我不知道我是否需要这个,或者它只适用于开发人员。
有谁能告诉我该怎么办?我怀疑除了GLPK之外,其他人也想将CBC用作Pyomo的替代方案。
4个回答

4

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

opt = SolverFactory("cbc.exe")

results = opt.solve(model)

这对我有效。


1
你会在这里找到一些通用的信息这里,我概述了一些方法。
虽然这是针对Clp的,但它也适用于Cbc。
有点奇怪,就像我观察到的那样,一些库没有静态链接(zlib),虽然做得到。但正如帖子中提到的,这不应再是问题(请参见有关哪些文件完全静态链接的限制),因此您的观察结果很奇怪(并且您没有说您下载了哪个文件)。
因此,我建议按照以下顺序尝试其中一个
  • 请再次尝试使用您的源代码,但请坚持使用主版本(请参见第一个链接),因为维护者仅保证这些版本完全静态构建!
  • 使用AMPL中的构建
    • (已测试并对我有效;通常在构建质量/稳定性方面推荐)
  • 使用coin-or/pulp中的构建,这是另一种用于Python的建模工具
    • (已测试并对我有效)
  • 使用mingw64从源代码编译
  • (使用任何构建并提供一些外部dll文件的zlib和co ->难以调试)

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

  • 许可证相关(构建的一部分是什么)
    • 不确定公司是否能够使用非自己构建的二进制文件,涉及法律问题
  • 与Python版本兼容性
    • 每个Cbc版本是否都可以工作
  • Cbc版本+配置
    • 现代版本
    • 使用多线程编译
    • ...

0

0

我在Windows 11上安装pyomo的cbc时也遇到了麻烦。我一直收到错误信息,例如:Solver (cbc) did not exit normally等。最终,以下是适用于我的和其他人未来参考的逐步过程。

  1. 前往AMPL网站并下载mswin64的coin二进制文件(coin.mswin64.YYYYMMDD)

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

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

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

  4. 打开my_env的anaconda cmd,并通过键入pyomo help -s获取可用求解器列表(查找求解器名称之前的“+”符号)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接