在 Python3.5 Numberjack (OSX) 上安装 SCIP 求解器
Install SCIP solver on Python3.5 Numberjack (OSX)
我在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)
我已经 运行 make
在 'scipoptsuite-3.1.0' 和 'scip-3.2.1',安装了 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 中的问题?
为什么会有 scip-3.2.1
目录? SCIP Opt Suite 3.1.0 包含 SCIP 3.1.0。您需要确保运行所有设置和命令完全如Numberjack install page.
中所述
和助教交流后,我得到了这个问题的答案。
安装 Numberjack/SCIP 的文件夹不是它应该的文件夹,因此它没有真正包含在求解器列表中。在完成 python setup.py build
和 python setup.py install
安装后,我 运行 python setup.py build -solver SCIP
和终端反馈表明
Successfully built solver interfaces for MipWrapper, SCIP
但是 jupyter notebook 无法识别求解器。
在已安装 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学习约束编程,为了解决问题,我应该使用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)
我已经 运行 make
在 'scipoptsuite-3.1.0' 和 'scip-3.2.1',安装了 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 中的问题?
为什么会有 scip-3.2.1
目录? SCIP Opt Suite 3.1.0 包含 SCIP 3.1.0。您需要确保运行所有设置和命令完全如Numberjack install page.
和助教交流后,我得到了这个问题的答案。
安装 Numberjack/SCIP 的文件夹不是它应该的文件夹,因此它没有真正包含在求解器列表中。在完成 python setup.py build
和 python setup.py install
安装后,我 运行 python setup.py build -solver SCIP
和终端反馈表明
Successfully built solver interfaces for MipWrapper, SCIP
但是 jupyter notebook 无法识别求解器。
在已安装 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 包。