linux下安裝boost python詳解

2021-10-07 12:32:16 字數 3579 閱讀 1014

boost.python的安裝

安裝boost

boost.python的測試

boost.python 是boost庫的乙個子功能,可以實現python和c/c++的無縫銜接。相比於cpython和cython來說boost.python在使用上會更加方便。關於boost.python的詳細內容可參見 boost.python官網

如果系統已經安裝了boost要先檢查是否已經有了此功能,如果之前boost是編譯安裝並且是完全安裝的,應該已經安裝了boost.python子功能,如果沒有安裝或者boost.python繫結了你不需要的python版本,則需要重新安裝。

我們直接去編譯一段**,如果可以通過,則說明已經安裝。示例** test.cpp

#include

char

const

*greet()

boost_python_module

(test)

編譯命令

g++ -i/usr/include/python2.7  -fpic test.cpp -lboost_python -shared -o test.so
如果程式可以正常通過編譯,一般能說明系統已經安裝了python.boost 並且繫結了python2。

如果boost的版本和python的版本都符合你的要求,則皆大歡喜,如果沒有得到預期結果,則繼續往下讀。

如果你的系統沒有安裝boost.python,但有可能已經安裝了boost(boost的非完全安裝)這種情況下則需要解除安裝重新安裝,所以我們需要檢查系統是否安裝了boost。boost一般會通過兩種方式安裝:1.包管理器安裝 2.編譯安裝。針對這兩種方式,以下提供了對應的檢查和解除安裝方式:

1.包管理器安裝方式的檢查、解除安裝

如果你的boost是通過yum(redhat陣營的linux,如redhat/centos)或者apt-get(debian陣營的linux,如ubuntu/deepin)安裝的,則可以使用這兩個工具檢查,如果已經安裝,則會顯示boost的版本,如果沒有安裝則顯示找不到相關檔案:

系統類別

檢查命令

redhat

rpm -qf /usr/include/boost/version.hpp

debian

dpkg -s /usr/include/boost/version.hpp

如果檢查到了則需要解除安裝

以boost1.58版本為例

系統類別

解除安裝命令

redhat

sudo yum remove libboost1.58-dev

debian

sudo apt-get autoremove libboost1.58-dev

2.編譯方式安裝的檢查、解除安裝

通過find 命令查詢 boost/version.hpp

sudo

find / -iname version.hpp

檢視boost的版本

cat version.hpp|

grep 「boost_lib_version」

sudo

rm -r -f /usr/local/include/boost*

sudo

rm -f /usr/local/lib/libboost*

安裝boost.python其實就是安裝boost,只不過我們安裝的時候選擇完全安裝即可。讀到此處的朋友基本上都是需要重灌boost或者需要boost.python子功能的,所以此處不建議使用包管理器安裝,它會帶來一些問題,我們直接選擇編譯安裝。

因為我們要使用boost.python,所以我們需要先檢查自己的python安裝位置及其版本,一般linux系統都會自帶python2和python3,預設為python2,此處分兩部分講解。

因為python2一般是linux預設的python版本,所以這裡的安裝不需要我們做過多的設定

解壓boost安裝包,並進入到首層目錄。

執行配置,選擇完全安裝

./bootstrap.sh --with-libraries=all
也可以通過 --prefix 指定安裝目錄,但一般不建議,除非自己有特殊安排。預設目錄為/usr/local/lib/usr/local/include/boost
./bootstrap.sh --with-libraries=all  --prefix=/usr/local/boost
sudo ./b2

sudo ./b2 install

安裝成功好會在 /usr/local/include/boost 和 /usr/local/lib 下看到boost的標頭檔案和庫檔案

如果想使用python3和boost.python一起使用,則需要在上面基礎上做一些調整,其實就是制定python的相關資訊,讓boost安裝器不使用預設的python2。此處以python3.6m為例。

解壓boost安裝包,並進入到首層目錄。

執行配置,選擇完全安裝。此處要指定python3.6的位置,不同的linux系統有所不同,可以通過命令:which python3來查詢路徑。

./bootstrap.sh  --with-libraries=all --with-python=/usr/bin/python3.6m
vim project-config.jam
using python : 3.6 : /usr/bin/python3.6m : /usr/include/python3.6m : /usr/lib/python3.6 ;
表示的意義為:

版本號 : 可執行檔案位置:頭檔案目錄:庫檔案目錄

編譯安裝

sudo ./b2

sudo ./b2 install --with-python include=

"/usr/include/python3.6m"

到此處,boost.python安裝完成。

#include

char

const

*greet()

boost_python_module

(test)

編譯命令

g++ -i/usr/include/python2.7  -fpic test.cpp -lboost_python -shared -o test.so
編寫python指令碼,test.py

import test

test.greet(

)

執行

python test.py
應該會輸出:

hello, world

Linux下Redis下安裝

redis安裝 檢查是否安裝redis ps ef grep redis2.檢查gcc服務是否安裝成功 rpm qa grep gcc注 安裝成功則顯示 mkdir redis5.解壓redis安裝包 tar zxvf redis 2.8.17 tar.gz c usr local redis 解壓...

Linux下安裝安裝arm linux gcc

1 tar指令解壓對應壓縮包到指定目錄,如arm linux gcc 4.3.2.tar.bz2壓縮包,sudo tar xvjf arm linux gcc 4.3.2.tar.bz2 c tar壓縮解壓縮 c 建立打包檔案,可搭配 v來觀察過程中被打包的檔名 filename t 檢視打包檔案的...

linux下安裝軟體

linux下安裝軟體有兩種方式 備註 linux 上面一般安裝 redhat 的rpm 包,在ubuntu 上一般安裝 deb的包 首先是rpm包的安裝教程 一是安裝二進位制的包,一般都是 rpm格式的了,常用 rpm ivh rpm 的方式來安裝了 rpm qa rpm命令。rpm安裝有時遇到依賴...