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

vcudknz3  于 2023-05-08  发布在  Windows
关注(0)|答案(3)|浏览(602)

我的目标是将开源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。然而,当运行时,我现在得到错误:“应用程序无法正确启动(0xc 000007 b)。
我也试过下载MSYS 2 MinGW,并遵循CBC的指示。我不知道我是否需要这样做,或者它只适用于开发人员。
有人能告诉我该怎么做吗?我怀疑除了我自己之外,其他人也想在Pyomo中使用CBC作为GLPK的替代品。

hmmo2u0o

hmmo2u0o1#

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

opt = SolverFactory("cbc.exe")

results = opt.solve(model)

对我很有效。

6yt4nkrj

6yt4nkrj2#

您将在这里找到一些一般信息,其中我概述了一些方法。
虽然这是针对Clp的,但也适用于Cbc。
我也观察到有点奇怪,有些库不是静态链接的(zlib),而它当然是可行的。但正如帖子中提到的,这不应该是这种情况(请参阅关于哪些文件是完全静态链接的限制),因此您的观察很奇怪(并且您没有说,您下载的是哪个文件)。
所以我会尝试以下之一(按此顺序):

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

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

  • license-stuff(构建的一部分)
  • 不确定一个公司是否能负担得起使用二进制文件而不是在法律的方面建立自己
  • 与Python的版本兼容性
  • 每个版本的CBC都能用吗
  • cbc版本+配置
  • 现代版
  • 多线程编译
  • ...
qmb5sa22

qmb5sa223#

我在windows11上安装pyomo的cbc也遇到了麻烦。我不断地得到错误,如:Solver (cbc) did not exit normally等这里有一个循序渐进的过程,最终对我有用(供我和其他人将来参考)。
1.转到AMPL website并下载mswin64的coin二进制文件(coin.mswin64.YYYYMMDD)
1.将内容提取到任何临时文件夹
1.复制所有内容并将其粘贴到环境的bin文件夹中。通常位于:
C:\Users\user\anaconda3\envs\my_env\Library\bin
1.打开my_env的anaconda cmd,并通过键入以下内容获得可用解算器的列表(查找解算器名称前的“+”符号):pyomo help -s

相关问题