1 下载源文件
wget https://sourceforge.net/projects/openbabel/files/openbabel/2.4.1/openbabel-2.4.1.tar.gz
2 安装依赖
2.1 安装boost
sudo apt install libboost-dev
2.2 安装 gcc/g++/make/cmake
这里的gcc/g++版本最好使用Ubuntu18自带的7版本,本人原先使用6版本出现了error。
sudo apt install gcc g++ make cmake
2.2 安装依赖库
sudo apt install libxml2-dev zlib1g-dev libcairo2-dev libeigen3-dev libopenbabel-dev
2.3 安装python3-dev
sudo apt install python3-dev
3 编译安装
tar -xzvf openbabel-2.4.1.tar.gz
mkdir build
cd build
cmake ../../openbabel-2.4.1 -DPYTHON_BINDINGS=ON -DCMAKE_INSTALL_PREFIX=~/softwares/openbabel #指定安装位置 和python绑定
make
make test
make install
如果要用多线程的话,可以加命令指定,如make -j4
4线程,make -j32
32线程,具体多少线程可以通过gnome-system-monitor
命令查看自己的CPU核数。
另外因为安装路径指定了在当前用户目录下,所以不使用sudo
命令。
4 环境变量添加
注意上面make install
命令的输出,默认的库路径已经变成我们指定的路径了,所以在环境变量添加的时候要注意添加的是我们指定的路径。
gedit ~/.bashrc
#在底部添加以下信息
export PATH=/home/xxx/softwares/openbabel/bin:$PATH #babel可执行文件路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/xxx/softwares/openbabel/lib#库路径
export PYTHONPATH=/home/xxx/softwares/openbabel/lib/python3.6/site-packages:$PYTHONPATH #Python路径添加
source ~/.bashrc
5 测试安装结果
5.1 可执行文件
babel --version
5.2 python 绑定
python
import openbabel
可能会出现问题
ModuleNotFoundError: No module named 'DLFCN'
不要慌,让我们愉快地修改源码吧。
打开openbabel.py
,然后做出如下修改
然后重新import openbabel
就行了。这里参考自解决方法