没想到在Linux下安装SCIP这个开源优化器会踩到那么多的坑。。步骤含泪安装记录,希望可以帮助到更多需要的人。
文中涉及到cmake、scip及pyscipopt的版本,在实操中建议保持一致;若有偏差不保证能安装成功。。
STEP1: centos安装gcc及必要的devel组件
- root用户安装gcc
yum install openssl-devel -y
yum install zlib-devel -y
yum install gcc -y
yum install gcc-c++ -y- 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- root用户进行include目录合并(此步骤非常重要),并赋权给执行用户
#将/usr/include目录合并到/usr/local/inlude目录下
cp -R /usr/include /usr/local/include
#临时将/usr/local/include下的文件切换给执行用户(比如rhzl)
chown -R rhzl:rhzl /usr/local/includeSTEP2: centos安装python3 -– 以下使用执行用户操作
- 为执行用户创建python3安装目录
mkdir -p /home/rhzl/bin/Python-v3.7.3- 下载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- 解压到当前目录
#解压
tar -zxvf Python-3.7.3.tgz- 进入Python-3.7.3目录,执行配置、编译及安装
cd Python-3.7.3
# 配置
./configure
# 编译
make
# 安装
make install验证安装是否正确
输入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 --versionSTEP3: 安装cmake
- 切换到/usr/local目录,获取CMake源码包
cd /usr/local
# 下载cmake
wget https://github.com/Kitware/CMake/releases/download/v3.13.2/cmake-3.13.2.tar.gz- 解压CMake源码包, 进入目录
tar -zxvf cmake-3.13.2.tar.gz
cd cmake-3.13.2- 编译、构建、安装
./bootstrap
make
make install DESTDIR=/home/rhzl/bin/cmake- 配置环境变量
echo "export PATH=/home/rhzl/bin/cmake/usr/local/bin:$PATH">>~/.bashrc
source ~/.bashrc- 查看版本
cmake --versionSTEP4: 安装求解器SCIP
在/usr/local目录下操作:
从SCIPOPT官网 ,下载6.0.2套件及4.0版本的header文件,并将两个文件传到/usr/local/目录下
• scipoptsuite-6.0.2.tgz
• scipoptheaders-4.0.0.tgz解压scipoptsuite-6.0.2.tgz,进入目录
tar -zxvf scipoptsuite-6.0.2.tgz- 在scipoptsuite-6.0.2目录下创建build目录,并在build目录下, 对上级目录执行cmake
cd scipoptsuite-6.0.2
mkdir build
cd build
cmake ..- 检查cmake结果,确保以下红框中的package存在

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

STEP5: 安装求解器Py客户端连接插件(pyscipypt)
好了到了本篇最最关键的一步,成败在此一举,若安装失败则请核对之前所有步骤,若有出入在版本校准/查缺补漏后,重新编译安装scip
- 安装PyScipopt
python3 -m pip install PySCIPOpt==2.2.3- 在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
- 验证是否安装成功
# 启动python
python3
>>
from pyscipopt import Model如果没有引入报错,则安装成功
