由于linux系统重置了,导致第二次安装SMC++的过程非常艰辛。
一、一帆风顺情况下
第一次按照GitHub官网安装得很顺利,依赖包都已经安装好了的话会很简单,代码如下:
1、创建python=3.9及以上的虚拟环境(我先安装的3.7,到最后提示有个包需要依赖3.9)
conda create -n smcpp python=3.9
2、安装:
git clone https://github.com/popgenmethods/smcpp.git
cd smcpp/
python setup.py install
二、与Errorsssss斗智斗勇
1、Error 1: 总体上就是mpfr, gmp, gmpxx库没有安装
fatal error: mpfr.h: No such file or directory
compilation terminated.
error: command '/usr/bin/gcc' failed with exit code 1
安装过程中的坑太多了,总结出的血泪经验就是:
(1)在安装mpfr前,需要先安装gmp,否则Error (configure: error: gmp.h can‘t be found, or is unusable.);
(2)在安装gmp同时安装gmpxx!否则Error (fatal error: gmpxx.h: No such file or directory)
直接上succeed代码:
1. 安装gmp和gmpxx(参考文章:安装gmp库)
#1. 官网下载gmp包()并解压缩
xz -d gmp-6.3.0.tar.xz
tar -xvf gmp-6.3.0.tar
cd gmp-6.3.0
#2. 安装
./configure --enable-cxx --prefix=~/software --build=x86_64-linux
# --enable-cxx: 配置GMP时,默认情况下不启用C++支持。解压缩该软件包,并使用以下命令进行配置:./configure --prefix=/usr/local --enable-cxx-这还将安装gmpxx.h header 以及libgmpxx.dylib和/或libgmpxx.a库
# --prefix=/path_to_install 默认路径为/user/local,如果无root权限,必须添加路径
make
make check
make install
安装成功后,我的~/software目录下会出现include/ 和lib/ 两个文件夹,gmp.h和gmpxx.h就在include文件夹里。
#3. 在~/.bashrc中添加环境变量
vi ~/.bashrc
export LD_LIBRARY_PATH=~/software/lib:$LD_LIBRARY_PATH
source ~/.bashrc
2. 安装mpfr库(参考:https://blog.csdn.net/qq_42694450/article/details/114765675,https://blog.csdn.net/u014786330/article/details/115824646)
#1. 下载
wget http://www.mpfr.org/mpfr-4.0.1/mpfr-4.0.1.tar.bz2
tar jxvf mpfr-4.0.1.tar.bz2
cd mpfr-4.0.1/
#2. 安装
./configure --prefix=~/software --with-gmp-include =~/software/include --with-gmp-lib =~/software/lib
make
make check
make install
成功后,mpfr.h会在include文件夹里。
3. 将这三个文件复制到smcpp/include/里
2、Error 2: ld: cannot find -lxxx
运行python setup.py install时,又出现
~/anaconda3/envs/python3.9/compiler_compat/ld: cannot find -ldmpfr
~/anaconda3/envs/python3.9/compiler_compat/ld: cannot find -ldgmp
~/anaconda3/envs/python3.9/compiler_compat/ld: cannot find -ldgmpxx
参考https://www.cnblogs.com/devilmaycry812839668/p/17644566.html给anaconda3配置link
vi ~/.bashrc
export LIBRARY_PATH=~/software/lib:$LIBRARY_PATH
source ~/.bashrc
不管用的话,像我一样简单粗暴的复制过去
cp ~/software/lib/lib* ~/anaconda3/envs/python3.9/compiler_compat/
最后终于安装成功了!愿每个生信人遇到的Error少一点~
测试又出现了Error,┭┮﹏┭┮
'seaborn-ticks' is not a valid package style,
还好找到了解决办法,参考https://www.jianshu.com/p/aa737eb91f95
完美解决!