多くのソースファイルとヘッダーファイルで構成されるCライブラリを作成したので、Pythonレイヤーでラップして、「インポート」できるようにする必要があります。
Pythonから呼び出される静的メソッドを実装しました。モジュールがインタープリターに公開するメソッドを指定する必要があります。
ただし、非静的メソッドはメソッドを登録するinitのみである必要があるため、ドキュメントでは、呼び出すことができるものを指定する際に単一のソースファイルを持つという非常に単純なケースのみを扱っているようです。
Cで静的に宣言されている場合、他のソースファイルのメソッドを呼び出すことは不可能であると私が知る限り(間違っている場合は修正してください)、Pythonモジュールごとに1つのCファイルしか持てません。全体で許可されている非静的メソッドは1つだけです。
これは本当に本当ですか?Pythonからコードにアクセスしたい場合は、コードを正しく構造化する必要がありますか?
編集:
だから、私がこれを最終的に機能させる方法は、Cythonを使用することでした。c / pythonインターフェース(以前はすべての参照カウントルールなどのために約1日かかっていました)を書き直すのに約1時間かかっただけでなく、すべてのビルドの問題を処理し、正確にどれを説明する明確なドキュメントがありますメソッドはPythonから利用できるようになります。
特に、私が使用したドキュメントの章は、ビルド手順、Cライブラリの呼び出し方法、言語の基本、および型、特にポインタのキャスト方法でした。
既存の複雑な構造のCコード(つまり、単一のファイル以外のもの)をPythonライブラリとしてラップしたい人には、Cythonを強くお勧めします。