2

Cython の目的が Python 拡張モジュールを作成することであることは知っていますが、Cython で作成されたコンパイル済みライブラリを Python 以外のプログラムでロードできますか? そうでない場合、なぜですか?

4

2 に答える 2

1

Python 以外のプログラムに直接ロードできるとは思えません。最も単純な Cython スクリプトによって生成された C コードを見ると、それを機能させるにはすべての Python の足場が必要であることは明らかです。とはいえ、C++ などから間接的に行うこともできます。C++ では、boost.pythonを使用して Python インタープリターを組み込み、モジュールとスクリプトの一部をロードします。これは複雑に思えるかもしれませんが、適切な接着コードを作成すれば、C++ から Python で既に作成した拡張機能をすばやく使用できます ( boost.python wikiを参照)。

このアプローチの欠点は、何らかの拡張機能を使用できるようにするためだけに、実際には完全な Python インタープリターをロードしていることです。私はすでに Python 拡張機能を持っていて、アプリケーションに Python を埋め込んで基本的なスクリプト作成機能を提供していたので、これは私にとっては問題ではありませんでしたが、このアプローチを使用して新しいライブラリを作成することはしませんでした。

于 2013-03-05T17:13:11.410 に答える