CentOS下 SCIP优化器及PySCIpypt客户端安装

没想到在Linux下安装SCIP这个开源优化器会踩到那么多的坑。。步骤含泪安装记录,希望可以帮助到更多需要的人。

文中涉及到cmake、scip及pyscipopt的版本,在实操中建议保持一致;若有偏差不保证能安装成功。。

STEP1: centos安装gcc及必要的devel组件

  1. root用户安装gcc
yum install openssl-devel -y
yum install zlib-devel -y
yum install gcc -y
yum install gcc-c++ -y
  1. root用户安装部分devel工具包
yum install libffi-devel -y
yum install gmp-devel -y
yum install python3-devel -y
yum install readline-devel -y
yum install g++-multilib -y
  1. root用户进行include目录合并(此步骤非常重要),并赋权给执行用户
#将/usr/include目录合并到/usr/local/inlude目录下
cp -R /usr/include /usr/local/include
#临时将/usr/local/include下的文件切换给执行用户(比如rhzl)
chown -R rhzl:rhzl /usr/local/include

STEP2: centos安装python3 -– 以下使用执行用户操作

  1. 为执行用户创建python3安装目录
mkdir -p /home/rhzl/bin/Python-v3.7.3
  1. 下载python3.7的包,有两种方法,一种是从官网下载,然后上传到CentOS上,另一种可以通过CentOS的wget命令直接下载。两者都可以。
mkdir -p /home/rhzl/tool/
cd ~/tool    
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
  1. 解压到当前目录
#解压
tar -zxvf Python-3.7.3.tgz
  1. 进入Python-3.7.3目录,执行配置、编译及安装
cd Python-3.7.3
# 配置
./configure
# 编译  
make
# 安装
make install
  1. 验证安装是否正确

    输入python3 -version 如果显示的版本号是3.7.3,就代表安装成功了(CentOS会自带一个python2.7)

# 验证python,如果显示的版本号是3.7.3,就代表安装成功了(CentOS会自带一个python2.7)
python3 --version

# 验证pip,看看pip的版本号是不是10.0.1,以及最后括号里是不是3.7
# 注意!!!如果发现pip3不好使,则需要检查pip3,pyvenv-3.7等bin目录下的命令文件,将第一行的python3命令路径调整为正确的路径: #!/home/rhzl/bin/Python-v3.7.3/usr/local/bin/python3.7
pip3 --version

STEP3: 安装cmake

  1. 切换到/usr/local目录,获取CMake源码包
cd /usr/local
# 下载cmake
wget https://github.com/Kitware/CMake/releases/download/v3.13.2/cmake-3.13.2.tar.gz
  1. 解压CMake源码包, 进入目录
tar -zxvf cmake-3.13.2.tar.gz
cd cmake-3.13.2
  1. 编译、构建、安装
./bootstrap
make
make install DESTDIR=/home/rhzl/bin/cmake
  1. 配置环境变量
echo "export PATH=/home/rhzl/bin/cmake/usr/local/bin:$PATH">>~/.bashrc
source ~/.bashrc
  1. 查看版本
cmake --version

STEP4: 安装求解器SCIP

在/usr/local目录下操作:

  1. SCIPOPT官网 ,下载6.0.2套件及4.0版本的header文件,并将两个文件传到/usr/local/目录下
    scipoptsuite-6.0.2.tgz
    scipoptheaders-4.0.0.tgz

  2. 解压scipoptsuite-6.0.2.tgz,进入目录

tar -zxvf scipoptsuite-6.0.2.tgz
  1. 在scipoptsuite-6.0.2目录下创建build目录,并在build目录下, 对上级目录执行cmake
cd scipoptsuite-6.0.2 
mkdir build
cd build
cmake ..
  1. 检查cmake结果,确保以下红框中的package存在

尤其注意前4项,虽然标注为OPTIONAL,实际在缺失的情况下,pyscipopt这块始终无法安装成功

  1. 执行构建及安装
#先在/home/rhzl/bin/下创建scipoptsuite目录
mkdir -p /home/rhzl/bin/scipoptsuite
#执行安装
make
make install DESTDIR=/home/rhzl/bin/scipoptsuite
  1. 在home目录下.bash_profile文件中,加入环境变量
vi ~/.bash_profile
#增加PATH环境变量
PATH="${PATH}:/home/rhzl/bin/scipoptsuite/usr/local/bin/scipoptsuite-6.0.2/build/bin"

将SCIP执行路径加入PATH

  1. 执行scip,检查安装结果

安装成功示例

STEP5: 安装求解器Py客户端连接插件(pyscipypt)

好了到了本篇最最关键的一步,成败在此一举,若安装失败则请核对之前所有步骤,若有出入在版本校准/查缺补漏后,重新编译安装scip

  1. 安装PyScipopt
python3 -m pip install PySCIPOpt==2.2.3
  1. 在home目录下.bashrc文件中,添加so文件搜索路径
vi ~/.bashrc
#添加以下配置
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/rhzl/bin/Python-v3.7.3/usr/local/lib:/usr/local/lib
source ~/.bashrc

若不配置则下一步import会失败

  1. 验证是否安装成功
# 启动python
python3
>>
from pyscipopt import Model

如果没有引入报错,则安装成功

喜大普奔。。

文章标题:CentOS下 SCIP优化器及PySCIpypt客户端安装

字数:1k

本文作者:Hao Zhenjie

发布时间:2022-05-21, 20:57:47

最后更新:2022-05-21, 20:57:47

原始链接:https://ajayhao.gitee.io/2022/05/21/pyscipopt-install/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。