2012-03-31 12 views
2

SWIGを使用してPythonからGo関数を呼び出すことはできますか?SWIG:PythonからGoを呼び出す

私がSWIGで見たGoの例はすべて、GoからC/C++関数を呼び出すようです。

+0

あなたは、グルーにPythonをビルドするためにSWIGを使用する理由がありますか?あなたがしたいことについてもっと多くの情報が役立つかもしれません。特定のGo関数を使用するか、Go関数を使用しますか?あなたはPythonからGoクラスを使いたいですか? – gbulmer

+0

いいえ、実際にはありません。それは一般的な質問でした。私はそれが可能ではないと思う。 SWIGはC/C++を「バックエンド」としてのみサポートしているようです。 – Petter

答えて

1

Goコンパイラの1つでは、C(cgo)が生成されます。私はそれを見たことはありませんが、SWIGを使ってPythonからこれらの関数を呼び出す方法があるかもしれません。

また、PythonのフォームをCに変換するCythonがあります。そのため、2つをCと結合してもう1つのより直接的なパスを提供することができます。

私はCythonユーザーがPython WMで注意して、CythonはCを生成することができます。これは動作するには「魔法」ランタイムを必要としません。彼らの技術は、Cythonのメカニズムを使用することです。 cdefを使ってPythonをCに近づけるCythonのソースを変更してCythonの出力を繰り返し調べると、Pythonの実行時に「消えてしまう」ことがあり、「純粋な」Cに達する可能性があると言われています。何よりも良いかもしれない。

ですから、 C. にコンパイルされたゴー機能を包み込むためのメカニズムしかしこのアプローチは、制約のあまりであるかもしれない、Cythonを使用してあなたを制限することを使用することができるかもしれません。

+0

ありがとうございました! – Petter

+0

@Ben - ありがとうございます。すみません、私はもっと助けられませんでした。私は、Cythonのエキスパートが次のように願っていました.-) – gbulmer

関連する問題