前提:实验室的服务器,我没有root权限
1. 尝试用conda方法onda install --channel conda-forge pyscipopt 出现未知错误,搜遍百度谷歌stackoverflow都没有找到有人和我一样的问题,不知道如何解决。放弃,采用源码编译方法。但是有人是可以成功的,大家不妨先试试conda命令直接安装行不行,如果可以的话就太爽了。
2. 认清现实,采用源码编译。注意在pip isnatll pysciopt前,需要安装好scipoptsuite。下载地址;SCIP
3. 本地下载好后,用 scp -P 52 localfile.txt username@xxx.xxx.xxx.xxx:/home/username/xxx命令将tgz文件上传到服务器中
4. tar -xzf xxx 解压缩
5. readme中有一些指示命令,我的具体步骤如下:
(1)cd scipoptsuite-6.0.2
(2)mkdir build
(3)cd build
(4)cmake .. -DCMAKE_INSTALL_PREFIX=/home/username/mlp/software 非常重要!!readme中没有-DCMAKE.....这部分,这是在设置安装的路径,如果不设置的话,默认是root路径,对非root用户来说make install的时候会在创建文件夹的时候没有权限。。 另外,=左右两侧不要有空格,会报错,即不能 -DCMAKE_INSTALL_PREFIX = /home/username/mlp/software,路径自己选哈
(5)make
(6) make install 非常重要!!!readme里没有这一步,但是如果只make而不make install的话,后面pip install pyscipopt会不停的报错找不到scip/scip.h
(7)vim ~/.bashrc
(8)末尾添加export PATH=$PATH:~/scipoptsuite-6.0.2/build/bin/ ,注意是scipoptsuite-6.0.2/buid/bin/,其他前面的~路径按照自己的来哈
(9)source ~/.bashrc
(10)可以在终端输入scip测试一下
6. 在第(6)步中,我没有安装过cmake,但是报错时页面推荐的命令需要root权限,因此采用非root用户安装cmake的方式。参照Linux下安装CMake的方法_苦木兑咖啡的博客-CSDN博客_linux安装cmake
非root用户安装cmake_linux非root安装cmake_芳芳超人爱学习的博客-CSDN博客
7. 可以pip了!不过要先set SCIPOPTDIR=/home/username/mlp/software,这里的SCIPOPTDIR和-DCMAKE_INSTALL_PREFIX后面的路径要一致
8. pip install pyscipopt==2.0 成功!注意这里要指定和scipoptsuite配套的版本,版本配套关系见PySCIPOpt/README.md at master · scipopt/PySCIPOpt · GitHub
最后,如果有大佬知道我开头第一点的报错是什么原因,请多多指教呜呜呜呜!完全搜不到😭