关于 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++项目中的方法返回的字符串。