安装pyscipopt总结

本文指导读者如何在Windows上安装SCIP优化器和pyscipopt库,涉及官网下载、VS集成、环境设置及解决编译时错误的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 安装SCIP

  • 官网下载SCIP,记住版本和下载路径

这里下载的时候可以直接选择add to 环境变量,后面不用手动添加

  • 下载visual studio,需要Microsoft C++ 生成工具

还以为只是需要一个类似于环境或者能力的东西,没想到是要下载vs=:=

  • 下载pycharm

因为要用pyscipopt,我用的是pycharm,其他的应该也可以

2. 下载pyscipopt

  • win+R+cmd
  • 然后输入,等号后面的是我的安装路径,需要对应的进行替换
    set SCIPOPTDIR=C:\Program Files\SCIPOptSuite 8.0.3

这一步真的很重要,不然会报错如下:

 ERROR: Command errored out with exit status 1:
   command: 'c:\users\admin\appdata\local\programs\python\python37\python.exe' 'c:\users\admin\appdata\local\programs\python\python37\lib\site-packages\pip\_vendor\pep517\_in_process.py' build_wheel 'C:\Users\admin\AppData\Local\Temp\tmpvmux4l2d'
       cwd: C:\Users\admin\AppData\Local\Temp\pip-install-u8a0lbvw\pyscipopt
  Complete output (47 lines):
  Assuming that SCIP is installed globally, because SCIPOPTDIR is undefined.

  running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib.win-amd64-cpython-37
  creating build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\Multidict.py -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\__init__.py -> build\lib.win-amd64-cpython-37\pyscipopt
  running egg_info
  writing PySCIPOpt.egg-info\PKG-INFO
  writing dependency_links to PySCIPOpt.egg-info\dependency_links.txt
  writing top-level names to PySCIPOpt.egg-info\top_level.txt
  reading manifest file 'PySCIPOpt.egg-info\SOURCES.txt'
  adding license file 'LICENSE'
  writing manifest file 'PySCIPOpt.egg-info\SOURCES.txt'
  copying src\pyscipopt\benders.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\benderscut.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\branchrule.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\conshdlr.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\cutsel.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\event.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\expr.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\heuristic.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\lp.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\nodesel.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\presol.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\pricer.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\propagator.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\reader.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\relax.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\scip.c -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\scip.pxd -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\scip.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\scip.pyx -> build\lib.win-amd64-cpython-37\pyscipopt
  copying src\pyscipopt\sepa.pxi -> build\lib.win-amd64-cpython-37\pyscipopt
  running build_ext
  building 'pyscipopt.scip' extension
  creating build\temp.win-amd64-cpython-37
  creating build\temp.win-amd64-cpython-37\Release
  creating build\temp.win-amd64-cpython-37\Release\src
  creating build\temp.win-amd64-cpython-37\Release\src\pyscipopt
  "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -I. -Ic:\users\admin\appdata\local\programs\python\python37\include -Ic:\users\admin\appdata\local\programs\python\python37\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" /Tcsrc\pyscipopt\scip.c /Fobuild\temp.win-amd64-cpython-37\Release\src\pyscipopt\scip.obj
  scip.c
  src\pyscipopt\scip.c(772): fatal error C1083: 无法打开包括文件: “scip/type_retcode.h”: No such file or directory
  error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.38.33130\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
  ----------------------------------------
  ERROR: Failed building wheel for pyscipopt
Failed to build pyscipopt
ERROR: Could not build wheels for pyscipopt which use PEP 517 and cannot be installed directly
  • 再 
    pip install pyscipopt==4.4.0

再安装python包,这里指定版本,与前面下载的scip版本对应

3. 测试调用

调用代码

from pyscipopt import Model

model = Model("Example")
x = model.addVar("x")
y = model.addVar("y", vtype="INTEGER")
model.setObjective(x + y)
model.addCons(2*x - y*y >= 0)
model.optimize()
sol = model.getBestSol()
print("x: {}".format(sol[x]))
print("y: {}".format(sol[y]))

结果

在这里需要注意,需要在`External Libraries`--`site-packages`中添加`pyscipopy`,才可以运行成功。虽然`External Libraries`--`Python37`里面有,但是调用会不成功(和gurobipy一样=..=)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值