PythonからC言語のライブラリを呼び出す方法はいくつかありますが、ここではC言語で作成した関数をPython/C APIを利用したラッパーを介して呼び出す方法について解説します。また、ctypes
モジュールを利用する方法もあります。
C言語の関数の実装
まずはPythonから呼び出ししたいC言語の関数を実装します。このC言語の関数の実装はいつも通りの書き方で実装して良いです。
#include <stdio.h>
#include <string.h>
int add(int x, int y) {
printf("call C function(add)!\n");
return x + y;
}
int sub(int x, int y) {
printf("call C function(sub)!\n");
return x - y;
}
ラッパー関数の実装
Pythonスクリプト上のデータとC言語のソースコード上のデータの扱いは大きく異なります。そのため、この違いを吸収するためのラッパー関数を設け、そのラッパー関数でデータの違いを吸収してから目的のC言語の関数を呼び出すようにする必要があります。
モジュール化のための実装
生成するライブラリがPythonのモジュールとして適切なものとなるようモジュール化を行う必要があります。
ライブラリのビルド
上記を実装後に「ライブラリのビルド」を行ってライブラリの生成を行います。
Python スクリプトの実装
そのライブラリをモジュールとして import を行い、そのモジュールの関数を実行するように「Python スクリプトの実装」を行います。
以上がPythonからC言語の関数を呼び出す一連の流れです。具体的なコード例や詳細な説明については、参考リンクをご覧ください。.