软件简介

Open Babel 是一个化学工具箱,旨在讲化学数据的多种语言。这是一个开放的协作项目,允许任何人搜索、转换、分析或存储来自分子建模、化学、固态材料、生物化学或相关领域的数据。

安装环境

  • OS :Redhat 6
  • gcc 4.4.7 (系统默认版本)

安装依赖库

可以先 跳过 该步骤,后续出现对应的问题再来重新安装

swig 4.0.1 (optional)

由于系统自带的 swig 工具版本太低,在安装时没法正确的识别新语法,故这里需要先安装 swig ,如果你执行 swig -version 查看的版本高于 3.x 即可跳过该步骤

cd /path/to/swig-4.0.1
./configure --prefix=/path/to/install
make -j 8 && make install

安装完成后需要添加到系统变量里

export PATH=/path/to/install/bin:$PATH

boost 1.73.0 库(optional)

系统中自带的 boost 有问题,只能手动重新安装,安装方法参考以前的文章

zlib 1.2.3 库(optional)

使用 conda 安装

libxm2 库(optional)

使用 conda 安装

cairo库(optional)

使用 conda 安装

上述三个库一般系统都会自带,如果提示缺失可以使用 conda 或者系统自带的命令安装 (yum、apt-get 等等)

安装 openbabel 3.1.1

安装包下载

github 上下载源码包

编译

# 我这里使用了 gcc 7 的版本,如果有编译器语法的问题可以尝试切换编译器
cd /path/to/openbabel-3.1.1
mkdir _build
cmake .. \
	-DCMAKE_INSTALL_PREFIX=/path/to/install \
	-DBoost_DIR:PATH=/path/to/soft/boost/1.73.0/lib/cmake/Boost-1.73.0 \
	-DBoost_INCLUDE_DIR:FILEPATH=/path/to/soft/Boost/1.73.0/include  \
	-DBoost_LIBRARY_DIR_DEBUG:PATH=/path/to/soft/Boost/1.73.0/lib \
	-DBoost_LIBRARY_DIR_RELEASE:PATH=/path/to/soft/Boost/1.73.0/lib \
	-DBoost_SYSTEM_LIBRARY_DEBUG:FILEPATH=/path/to/soft/Boost/1.73.0/lib/libBoost_system.so \
	-DBoost_SYSTEM_LIBRARY_RELEASE:FILEPATH=/path/to/soft/Boost/1.73.0/lib/libBoost_system.so \
	-DCAIRO_INCLUDE_DIR:PATH=/path/to/anaconda3/include/cairo \
	-DCAIRO_LIBRARY:FILEPATH=/path/to/anaconda3/lib/libcairo.so \
	-DLIBXML2_INCLUDE_DIR:PATH=/path/to/anaconda3/include \
	-DLIBXML2_LIBRARY:FILEPATH=/path/to/anaconda3/lib/libxml2.so

make -j 8 && make install

因为我这里加载了 conda 环境,而 cmake 会从系统自带的库中查找 boost、libxml2、zlib 这些库,所以需要在这里手动指定这些库的位置

如果你都是使用的系统命令(yum、apt-get 等)安装,这里就不需要后面的指定路径的命令,只需要指定一个安装路径即可

安装 python openbabel 3.1.1.1

安装包下载

点击该 链接 即可 python openbabel 3.1.1.1 包

编译

python setup.py build_ext -I/path/to/openbabel-3.1.1/install/include -L/path/to/openbabel-3.1.1/install/lib
python setup.py install --prefix=/path/to/python/libs/install

主要是需要指定一下刚才安装的 openbabel 3.1.1 的位置,install 时,如果不需要指定安装位置,会自动安装在 python 默认的 libs 里

系统配置

上述软件都安装完成后需要加载环境变量后才能正常使用

export PYTHONPATH=/path/to/openbabel-3.1.1/install/lib:$PYTHONPATH
export PATH=/path/to/openbabel-3.1.1/install/bin:$PATH
export LD_LIBRARY_PATH=/path/to/openbabel-3.1.1/install/lib:$LD_LIBRARY_PATH

FAQs

下面是技术总结 / 安装过程中出现的问题

1. 安装 openbabel-3.1.1 时,cmake 提示有关 boost / zlib / libxml2 的 error

参考上面的方法安装对应的依赖库后,在 cmake 时指定它们的位置

2. 安装 openbabel-3.1.1 时 fatal error: cairo.h: No such file or directory

cmake 时指定 cairo 头文件的位置错误,仔细对照 cmake 的命令

-DCAIRO_INCLUDE_DIR:PATH=/path/to/anaconda3/include/cairo 
3. 安装 python openbabel 3.1.1.1 时 Error: Unable to find ‘openbabel/babelconfig.h’

如果你是直接 pip install openbabel 会出现该错误,因为系统的库文件路径中没有 openbabel 3,需要先安装 openbabel 3.1.1

4. 安装 python openbabel 3.1.1.1 时 openbabel/openbabel-python.i:79: Error: Syntax error in input(1).

安装新版本的 swig ,这是因为旧版本 swig 不兼容新语法

5. 安装完成后 import openbabel 出错 cannot import name ‘_openbabel’

需要在系统环境变量里加载之前安装的 openbabel 3

export PYTHONPATH=/path/to/openbabel-3.1.1/install/lib:$PYTHONPATH
export PATH=/path/to/openbabel-3.1.1/install/bin:$PATH
export LD_LIBRARY_PATH=/path/to/openbabel-3.1.1/install/lib:$LD_LIBRARY_PATH
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐