2011-07-13 11 views
3

私はリファレンスドキュメントを見てきましたが、PyPy用のC APIに関する記述は見つかりませんでした。それは存在しますか?もしそうなら、それはCPython C APIと同じですか? PyPyをCPythonの上で実行した場合、これは変更されますか?PyPy C/APIへのアクセス

答えて

3

CPyExtと呼ばれるエミュレーションレイヤーを介して、PythonはCPython拡張API用にalpha-level supportを持っています。ここにはblog post introducing the supportがあります。ここはa later one discussing itです。あなたの目標がCライブラリとのインタフェースである場合は、おそらくctypesを使用して呼び出しているPythonラッパーモジュールを作成するだけの方がよいでしょう。

CPythonでPyPyを実行すると、APIがPyPyのオブジェクトモデルとやりとりしないため、CPythonホスト環境とやりとりすることになります(ひどく減速するだけでなく)。

+0

私の目的は、PythonをC++アプリケーションに組み込むことです。 –

+0

アプリケーションはすでにPython C APIを使用していますか?埋め込みの目標は何ですか? (ここでは埋め込みと拡張の間の垣根があり、それはあなたのユースケースに適しているかもしれないし、そうでないかもしれない:http://www.twistedmatrix.com/users/glyph/rant/extendit.html) – Miles

+0

私たちは現時点で埋め込みに使う。私はそれに対するすべての議論を認識していますが、システムの他の部分と統合することを余儀なくされている現在の設定では、拡張はオプションではありません。これは最善の解決策ではないかもしれないが、他の誰もそれがより多くの仕事であると同意すると説明する長い時間を費やした –