我正在学习Python中的约束编程,并且为了解决问题,我应该使用SCIP求解器。我已经从Github女巫安装了Numberjack标准软件包,其中包括Mistral,Mistral2,Toulbar2,MipWrapper,SatWrapper,MiniSat和Walksat求解器。
运行我的代码时,出现以下错误:
Traceback (most recent call last):
File "/Users/angelocoelho/anaconda3/lib/python3.5/site-packages/Numberjack/__init__.py", line 910, in load
lib = __import__(solverstring, fromlist=[solverspkg])
ImportError: No module named 'Numberjack.solvers.SCIP'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "grafosdefluxos.py", line 42, in <module>
solver = model.load('SCIP')
File "/Users/angelocoelho/anaconda3/lib/python3.5/site-packages/Numberjack/__init__.py", line 915, in load
solvername)
ImportError: ERROR: Failed during import, wrong module name? (SCIP)
我已经在'scipoptsuite-3.1.0'和'scip-3.2.1'中运行
make
,安装了Numberjack-master的'setup.py'并尝试了以下操作:python setup.py -solver SCIP
女巫返回错误
Error: the solver 'SCIP' is not known, please use one of: Mistral, SatWrapper, Toulbar2, Walksat, MipWrapper, MiniSat, Mistral2
我在Numberjack文件夹的旁边和内部都有SCIP文件夹。
我阅读并运行了README和INSTALL文件中的所有命令,以了解如何配置此求解器,但无法正确完成。
如何获得SCIP来解决Numberjack中的问题?
最佳答案
与助理老师交谈后,我得到了这个问题的答案。
安装Numberjack / SCIP的文件夹不是应该的文件夹,因此它没有真正包含在求解器列表中。完成python setup.py build
和python setup.py install
安装后,我运行了python setup.py build -solver SCIP
并指出了终端反馈Successfully built solver interfaces for MipWrapper, SCIP
但是jupyter笔记本无法识别求解器。
已安装Anaconda(python3.5)的解决方案应该起作用:
下载Numberjack(文件“ Numberjack-master.zip”)并解压缩。
下载SCIP并复制下载的文件scipoptsuite-3.1.0.tgz
。将其粘贴到Numberjack-master解压目录中。它的路径应为~/Downloads/Numberjack-master/scipoptsuite-3.1.0.tgz
。
在终端中运行cd ~/Downloads/Numberjack-master
(或您的Numberjack-master目录路径)。
然后运行python3.5 setup.py install --user
。
在我的情况下,Jupyter在寻找解算器~/anaconda3/lib/python3.5/site-packages/Numberjack/
他们是
没有安装在这里,所以我没有使用python
,而是使用python3.5
,因为Anaconda是Python 3.5软件包。
关于python - 在Python3.5 Numberjack(OSX)上安装SCIP求解器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40009141/