關於 Boost.Python 的介紹性示例

當你必須在 Python 專案中使用 C++庫時,事情很簡單。只是你可以使用 Boost。

首先,這裡是你需要的元件列表:

  • 一個 CMakeList.txt 檔案,因為你將使用 CMake。
  • C++專案的 C++檔案。
  • python 檔案 - 這是你的 python 專案。

讓我們從一個小的 C++檔案開始。我們的 C++專案只有一個方法返回一些字串這是第一次嘗試。稱之為 CppProject.cpp

char const *firstMethod() {
    return "This is the first try.";
}

BOOST_PYTHON_MODULE(CppProject) {
    boost::python::def("getTryString", firstMethod); // boost::python is the namespace
}

在下面有一個 CMakeLists.txt 檔案:

cmake_minimum_required(VERSION 2.8.3)
FIND_PACKAGE(PythonInterp)
FIND_PACKAGE(PythonLibs)
FIND_PACKAGE(Boost COMPONENTS python)

INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS} ${PYTHON_INCLUDE_DIRS})

PYTHON_ADD_MODULE(NativeLib CppProject)
FILE(COPY MyProject.py DESTINATION .) # See the whole tutorial to understand this line

通過本教程的這一部分,一切都非常簡單。你可以在你的 python 專案中匯入庫和呼叫方法。呼叫你的 python 專案 MyProject.py

import NativeLib
print (NativeLib.getTryString)

要執行你的專案,請按照以下說明操作:

  • 建立名為 build 的目錄。
  • 進入該目錄。
  • 發出命令 cmake -DCMAKE_BUILD_TYPE=Release ..
  • make
  • python MyProject.py。現在,你必須看到 C++專案中的方法返回的字串。