一、指定python版本,编译boost源码原因:
使用apt-get install --no-install-recommends libboost-all-dev直接安装boost时,会默认安装python3.6版本,但是在用atlas开发环境时,安装的toolkits依赖的是python3.7以上。因为之前先安装了python3.6,所以在使用atc命令时会出现如下错误(Inner Error:Failed to init tbe):
在出现此错误时,可以在atc命令后面添加--log=debug,可以打印清楚的错误日志,就会出现提示现在使用的python版本是3.6的,而atc.bin最低使用3.7以上的版本。
为了解决此问题,决定重新用python3.7对boost进行编译安装。
二、在次使用的python3.7编译安装boost,这里记录一下过程:
(1)去官网先下载boost源码:Boost Version History
(2)解码boost源码,cd进入boost源码路径下;
(3)执行booststrap脚本:
./bootstrap.sh --with-python=python3 --with-python-root=/home/python3.7.5/bin/python3.7 --with-python-version=3.7
其中/home/python3.7.5/bin/python3.7为自己的python3.7编译安装路径。
(4)修改编译配置
必须在配置中添加python的头文件路径和库路径(一定确认下libpython3.Xm.so存在,这跟编译py时的参数有关,需要加–enable-shared)。在project-config.jam中进行设置:
...
# Python configuration
import python ;
if ! [ python.configured ]
{
using python : 3.7 : "/home/python3.7.5/bin/python3.7" : /home/python3.7.5/include/python3.7m : /home/python3.7.5/lib;
}
...
(5)编译、安装、加载
$ sudo ./b2
$ sudo ./b2 install
$ sudo ldconfig /usr/local/lib