rdkit(2019.9)源代码编译安装
(2019-07-28 15:15:38)
标签:
rdkit软代码编译离线安装 |
最近几天一直高负荷,事情也多,拖到快截止了,没办法得赶快看看怎么安装了。(安装完以后发现腾讯那个倒是延长了一周,难得的缓冲啊)
因为学生平时的课题需要,再就是正好腾讯的alchemy竞赛(https://alchemy.tencent.com/)的缘故,需要在(中科院)AI集群(ai.sccas.cn)上安装rdkit化学信息学的包。其实这个包我指导的学生一直在用,之前的安装都是直接的使用的Anaconda,直接一体化安装就可以了。不过这次呢,因为AI集群这种一般都是没法联网的,就得需要源码安装。源码安装的话就麻烦不少,也记录一下,备用。
首先,rdkit可以直接从github上下载,网址为https://github.com/rdkit/rdkit
直接可以git clone git@github.com:rdkit/rdkit.git获得。
注意直接git clone下来的是空文件夹,需要git branch
到相应的分支,这里我们直接使用的最新的master分支,基本是2019.9的版本。
下载下来后,打包tar上传到的AI集群,解压后在rdkit文件夹里面建立build文件夹,进入后键入
CC=gcc FC=gfortran CXX=g++ ccmake ../
可以调出ccmake的gui。
这里我们可以直接使用“c”的configure命令,可以看到External里面缺少很多包,比如catch
这个因为我们是在集群上,没法直接git
clone下载;解决方案的话就是本机上下载下来以后,再上传到AI集群。注意这个地方,对于git的版本的话需要下载Catch2-2.1.2.tar.gz
maeparser-1.2.tar.gz
rapidjson-master.zip。这个地方默认的rdkit的Cmake里面带有md5的校验机制,注意有些包需要修改CMakeList.txt把MD5校验绕过去。
再次“c”configure,发现大量boost函数库的报错,原因是集群还是老旧的1.53,这里我们下载最新版的boost
C++1.70来安装,参照boost官网以及b2 --help的内容,
然后
这个地方也可以使用多线程,虽然我测试的时候用的single
准备好所需的函数库以后,再次在ccmake gui的界面键入"c"。
此时cmake仍然会报大量的错误,这次主要是各种函数库设置的问题,ccmake gui的时候也会有提示.。
特别留意的有以下几个
Boost_DIR
/home/scapps/Soft/boost_1_70_0/build_py3/lib/cmake/Boost-1.70.0
Boost_INCLUDE_DIR
/home/scapps/Soft/boost_1_70_0/build_py3/include
PYTHON_NUMPY_INCLUDE_PATH
/public/software/Anaconda/lib/python3.6/site-packages/numpy/core/include/numpy
Boost_PYTHON36_LIBRARY_RELEASE
/home/scapps/Soft/boost_1_70_0/build_py3/lib/libboost_python36-x64.so
Boost_IOSTREAMS_LIBRARY_RELEASE
/home/scapps/Soft/boost_1_70_0/build_py3/lib/libboost_iostreams-x64.so
(类似IOSTREAMS的还有REGEX、SERIALIZATION、SYSTEM的BOOST库)
以上配置了以后,编译出来发现有限boost库调用的版本有问题,逐
CMAKE_CXX_FLAGS
-L/home/scapps/Soft/boost_1_70_0/build_py3/lib
-lboost_iostreams-x64
-lboost_python36-x64
-lboost_regex-x64
-lboost_serialization-x64
-lboost_system-x64
(注意这个地方的-x64后缀是因为我编译的时候加的标记;正常yum或者apt的没有这个)
还是有python版本不匹配的问题,导致python的RDkit库ctest报错,发现此问题后,强制使用python3对应的版本和库来编译即可,如
CMAKE_CXX_FLAGS -L/public/software/Anaconda/lib
-lpython3.6m
注意这个FLAGS同时加到了CXX和CC的配置里面
之后编译就没有问题了,不过ctest报错。查看发现是简单的环境变量的问题,然后修改后
# added by mashuo and yingjin
source /public/software/Anaconda/bin/activate
export PATH=/public/software/Anaconda/bin:$PATH
export RDBASE=/home/scapps/Soft/rdkit
export PYTHONPATH=$RDBASE:$PYTHONPATH
export
LD_LIBRARY_PATH=$RDBASE/lib:/usr/lib64/lib:$LD_LIBRARY_PATH
export
LD_LIBRARY_PATH=/home/scapps/Soft/boost_1_70_0/build_py3/lib:$LD_LIBRARY_PATH
export
C_INCLUDE_PATH=/home/scapps/Soft/boost_1_70_0/build_py3/include/boost-1_70:$C_INCLUDE_PATH
export
CPLUS_INCLUDE_PATH=/home/scapps/Soft/boost_1_70_0/build_py3/include/boost-1_70:$CPLUS_INCLUDE_PATH
export
C_INCLUDE_PATH=/public/software/Anaconda/include/python3.6m:$C_INCLUDE_PATH
export
CPLUS_INCLUDE_PATH=/public/software/Anaconda/include/python3.6m:$CPLUS_INCLUDE_PATH
export
LD_LIBRARY_PATH=/home/scapps/Soft/rdkit/lib:$LD_LIBRARY_PATH
export
LD_LIBRARY_PATH=/public/software/Anaconda/lib:$LD_LIBRARY_PATH
之后ctest也没有问题了,161个例子还是几个例子,除了零星几个调用子进程的没有通过,其他的均没有问题。
==== 2019.8.17更新
====
小J反应跑腾讯的示例程序还是报错,主要是pytorch_geometric的问题。解决方案的话,需要额外安装以下程序:
1) pytest-runner
2) setuptools_scm
3) pytorch_sparse
4) pytorch_scatter
5) pytorch_cluster
6) pytorch_geometric
大概就是以上这些 没有root账户的话可以--user的模式来安装 或者编译安装