关于Conda中Rdkit报错ImportError:无libboost_python动态库问题解决方法--安装至指定目录
问题解析
libboost_python36.so.1.73.0报错信息解析:
- 缺少的包名为boost
- 该库支持语言为python3.6
- boost包版本为1.73.0
报错原因有两点:
- boost包未安装
- 编译时使用了python2,未指定python3.6
解决方法
1. boost包下载
下载地址:boost_1_73_0.tar.gz
2. boost包编译安装
a) 依赖库检查与更新(需要联网,可跳过)
$ sudo apt-get update
$ sudo apt-cache search boost
$ sudo apt-get install libboost-all-dev
b) 解压boost包
$ tar -xzvf [你的下载boost包路径]/boost_1_73_0.tar.gz
解压后会得到boost_1_73_0文件夹,如下图所示 c) 编译boost 1.73.0 此过程在自定义Conda环境中完成,若在base环境,则需要将envs/[创建的conda环境名]部分删掉,具体查看对应路径后即可明白。
$ cd boost_1_73_0
$ ./bootstrap.sh --with-libraries=python --with-toolset=gcc --with-python="/home/[用户名]/anaconda3/envs/[创建的conda环境名]/bin/python3.6m" --with-python-version=3.6 --with-python-root="/home/[用户名]/anaconda3/envs/[创建的conda环境名]" --prefix="/home/[用户名]/anaconda3/envs/[创建的conda环境名]" --exec-prefix="/home/[用户名]/anaconda3/envs/[创建的conda环境名]"
$ ./b2 --with-python include="/home/[用户名]/anaconda3/envs/[创建的conda环境名]/include/python3.6m" --prefix="/home/[用户名]/anaconda3/envs/[创建的conda环境名]" --exec-prefix="/home/[用户名]/anaconda3/envs/[创建的conda环境名]"
$ ./b2 install
d)编译过程图 i. 运行bootstrap.sh过程 ii. 运行b2文件过程 iii. 安装过程
iv. 检验是否编译成功: 查看制定安装路径下(–prefix后的参数值),是否有libboost_python36相关文件,如图5所示
e)建立软连接
$ ln -s libboost_python-py36.so /home/[用户名]/anaconda3/envs/[创建的conda环境名]/lib/libboost_python3.so
$ ln -s libboost_python-numpy36.so /home/[用户名]/anaconda3/envs/[创建的conda环境名]/lib/libboost__python-numpy3.so
参考博客
[1] libboost_python3.6编译过程记录 [2] 基于python3.6的libboost库安装(用于anaconda3安装caffe) [3] caffe安装–安装libboost(基于python3.6)的库部分
|