前言
boost.python库被用于C++与Python代码间的交互,提供了两者间大部分数据类型的转换
相关环境
操作系统:Ubuntu 20.04
python版本:Python 3.8
boost版本:boost 1.78.0
安装
1.boost.python检查与卸载
在安装boost之前需要检查系统中是否已经安装boost库,若系统中存在则需要卸载干净。
(1)包管理器安装方式的检查 卸载
系统类别 | 检查命令 |
---|---|
redhat | rpm -qf/usr/include/boost/version.hpp |
debian | dpkg -S /usr/include/boost/version.hpp |
检查到了则需卸载:
系统类别 | 检查命令 |
---|---|
redhat | sudo yum remove libboost***-dev |
debian | sudo apt-get autoremove libboost***-dev |
(***为版本号
)
(2)编译方式安装的检查 卸载
通过find命令查找boost/version.hpp
sudo find / -iname version.hpp
查看boost版本
cat version.hpp| grep "BOOST_LIB_VERSION"
卸载boost
sudo rm -r -f /usr/local/include/boost*
sudo rm -f /usr/local/lib/libboost*
(*为相关版本信息)
2.boost.python安装
(1)安装包下载
boost安装包下载: [https://www.boost.org/](https://www.boost.org/)
(2)解压,进入首层目录(采用root用户)
sudo -i
cd /***/boost_1_78_0 (***是相关的存储位置信息)
(3)找到python安装位置
boost.python在编译的时候需要链接到python的解释器,默认会使用在/usr里面的那个python。而老版的ubuntu的python可能是2.x版本的,建议指定为你正在使用的版本。我们可以激活conda的环境,然后使用whereis python
命令查找
conda activate your_envs
which python
# 记下python的路径,一般是/xx/xx/bin/python
–prefix
是要安装到的路径,如果有root权限可以按照到默认路径,这样也方便cmake找
–with-python
指定安装boost.python38这个库。(如果安装所有库可以添加–with-libraries=all)
–with-python-root
指定python解释器的位置,也就是前面which得到的路径
./bootstrap.sh --prefix=/usr/path/of/boost --with-python=python3.8 --with-python-root=/your/python/path
(4)编辑project_config.jam文件
vim project_config.jam
在project_config.jam中python对应地方加入指定版本的python 的include和lib
Python configuration
import python ;
if ! [ python.configured ]
{
using python : 3.9
: "/xxx/bin/python"
: "/xxx/include"
: "/xxx/lib";
}
表示意义:版本号 : 可执行文件位置:头文件目录:库文件目录
注意:这里为python所在位置,根据自己实际情况来
(5)编译安装
.
/b2
./b2 install --with-python include="/usr/include/python3.8"
这里include
对应python的include
目录。
安装成功会在 /usr/local/include/boost
和 /usr/local/lib
下看到boost的头文件和库文件(libboost*.so)
(6)在profile中添加boost路径(编译成功后,会提示路径)
vim /etc/profile
添加内容为:
export CPLUS_INCLUDE_PATH=/home/pigeon/boost/boost_1_78_0:$CPLUS_INCLUDE_PATH
export LIBRARY_PATH=/home/pigeon/boost/boost_1_78_0/stage/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/home/pigeon/boost/boost_1_78_0/stage/lib:$LD_LIBRARY_PATH
(7)运行环境
source /etc/profile
(8)更新连接库
ldconfig