17

Pythonインタープリターを.NETアプリケーションに埋め込みたいのですが。もちろん、私はIronPythonを知っていますが、スタックレスサポートとマイクロスレッドがあるため、PyPyに特に興味があります。

ただし、PyPyはCLIに対して構築できますが、スタンドアロンのPythonインタープリターをpython.exeとして提供しているように見えます。.NETホストアプリケーション内に実際に埋め込むことができるものを構築するためのドキュメントを見つけることができませんでした。

(スタックレス)PyPyを使用して.NETアプリからPythonスクリプトを実行し、それらのスクリプトがホストアプリケーションによって提供されるCLRオブジェクトと対話できるようにする方法はありますか?

4

2 に答える 2

5

PyPy の CLI バックエンドは C バックエンドほど成熟しておらず、.NET ライブラリとの統合もうまくいきません。C にコンパイルされた通常の PyPy は本番環境に対応していますが、.NET バージョンは本番環境に対応しているとは言えません。また、JIT (この分野ではいくつかの作業が行われていますが) とマイクロスレッドもありません。誰かが介入しない限り、現時点では IronPython が唯一の実行可能なオプションのようです。

于 2011-05-23T17:17:55.840 に答える
3

いいえ、ありません。CPython には、github で管理されている Python for .NET ( http://pythonnet.github.io/を参照) を使用して .NET ライブラリにアクセスする機能がありましたが、IronPython を除けば、実際に Python インタープリターを .NET ファイルに埋め込む方法はありませんでした。 NET アプリケーション。これは、同社の主なセールス ポイントの 1 つです。

関連する注意事項として、IronPython (デフォルト) は、再帰に関しては CPython よりもスタック サイズが小さくなっています。つまり、CPython 風のスタック フレームを有効にするには、「-X:FullFrames」コマンド ライン オプションを ipy.exe に渡す必要があります。これは PyPy ほど良くないことを知っておいてください...しかし、役立つかもしれません:)

于 2011-05-22T06:47:05.057 に答える