Ubuntu で pybind11 を使用して、C++ 関数の Python バインディングを作成する CMake プロジェクトをセットアップしようとしています。
ディレクトリ構造は次のとおりです。
pybind_test
arithmetic.cpp
arithmetic.h
bindings.h
CMakeLists.txt
main.cpp
pybind11 (github repo clone)
Repo contents (https://github.com/pybind/pybind11)
CMakeLists.txt
ファイル:
cmake_minimum_required(VERSION 3.10)
project(pybind_test)
set(CMAKE_CXX_STANDARD 17)
find_package(PythonLibs REQUIRED)
include_directories(${PYTHON_INCLUDE_DIRS})
include_directories(pybind11/include/pybind11)
add_executable(pybind_test main.cpp arithmetic.cpp)
add_subdirectory(pybind11)
pybind11_add_module(arithmetic arithmetic.cpp)
target_link_libraries(pybind_test ${PYTHON_LIBRARIES})
リポジトリが正常にビルドされ、ファイルarithmetic.cpython-36m-x86_64-linux-gnu.so
が生成されます。この共有オブジェクト ファイルを Python にインポートするにはどうすればよいですか?
pybind11 docs のドキュメントには次の行があります
$ c++ -O3 -Wall -shared -std=c++11 -fPIC `python3 -m pybind11 --includes` example.cpp -o example`python3-config --extension-suffix`
しかし、私は CMake を使用してビルドしたいと考えており、このモジュールを使用するために python を実行するたびに追加のインクルード ディレクトリを指定する必要もありません。
この共有オブジェクト ファイルを通常の python モジュールのように python にインポートするにはどうすればよいですか?
Ubuntu 16.04 を使用しています。