使用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
進行編譯和構建,確保正確安裝了cmake
和C++
的編譯工具鏈
pip install ./cmake_example
安裝成功後就趕進在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