Pybind11和CMake構建python擴充套件模組環境搭建

mrchip發表於2024-07-17

使用pybind11的CMake模板來建立擴充環境搭建

從Github上下載cmake_example的模板,切換分支,並升級pybind11子模組到最新版本

拉取pybind11使用cmake構建工具的模板倉庫

git clone --recursive https://github.com/mrchipset/cmake_example.git

切換分支

git checkout -b dev

升級submodule並切換到最新的v2.11.0版本

git submodule update --remote
cd pybind11
git checkout v2.11.0

為了不破壞原有的python環境,我們新建一個虛擬的python環境,並切換到虛擬環境中進行實驗

python3 -m venv venv
source venv/bin/activate

使用pip進行編譯和構建,確保正確安裝了cmakeC++的編譯工具鏈

pip install ./cmake_example

apl6QqY15fgkrzs4aMd3dd5s4N4_pP6iuqlKRIclbmQ.png

安裝成功後就趕進在python中匯入包試試吧

(venv) mrchip@ubuntu22:~/src/demo/cmake_example$ python
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cmake_example
>>> cmake_example.__version__
'0.0.1'
>>> dir(cmake_example)
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '__version__', 'add', 'subtract']
>>> cmake_example.add(1, 2)
3
>>> cmake_example.subtract(1, 4)
-3
>>>

如果到這裡都完成了,那麼整明我們的pybind11開發環境已經搭建完成了,下一期我們將深入這個模板工程來了解一些pybind11構建擴充的基本操作流程

踩坑記錄

如果直接cmake configure不過,那麼需要檢查是否安裝了python的開發庫其中包含了python標頭檔案和連結庫

sudo apt install python3-dev libpython3-dev

如果無法建立python虛擬環境,安裝這個模組

sudo apt install python3-venv

如果沒有安裝編譯環境那麼可以先安裝cmake和gcc等工具鏈

sudo apt install cmake build-essential gdb

相關文章