64

c++プログラムからPythonスクリプトファイルを呼び出したいのですが。

配布先の人にPythonがインストールされるかどうかはわかりません。

基本的に、Apacheのような配布ライセンスを持つ使用できる.libファイルを探しています。

4

7 に答える 7

76

C++ プログラムから Python スクリプト ファイルを呼び出したいと思います。

これは、C++ アプリケーションに Python を埋め込む必要があることを意味します。Embedding Python in Another Application で述べたように:

Python を埋め込むことは、Python を拡張することに似ていますが、完全ではありません。違いは、Python を拡張する場合、アプリケーションのメイン プログラムは依然として Python インタープリターであり、一方、Python を埋め込む場合、メイン プログラムは Python とは何の関係もない場合があるということです。代わりに、アプリケーションの一部が Python インタープリターを呼び出す場合があります。いくつかの Python コードを実行します。

Embedding Python in Another Applicationを最初に実行することをお勧めします。次に、次の例を参照してください

  1. C/C++ への Python の組み込み: パート I

  2. C/C++ への Python の組み込み: パート II

  3. マルチスレッド C/C++ アプリケーションへの Python の組み込み

Boost.Pythonが気に入った場合は、次のリンクにアクセスしてください。

  1. Boost.Python パート 1 を使用した Python の埋め込み
于 2008-11-30T04:52:03.367 に答える
36

Boostには、役立つPythonインターフェースライブラリがあります。

Boost.Python

于 2008-09-08T04:01:10.447 に答える
3

C++ アプリ内に Python インタープリターを埋め込むと、アプリケーションで Python スクリプトを実行して Python プログラムを実行できます。また、これらのスクリプトがアプリケーションで C++ 関数を呼び出すのも簡単になります。これが必要な場合は、前述の Boost ライブラリを使用して、リンクを簡単に作成できるようにする必要があります。過去に、私はC++ コードへの Python インターフェイスを生成するためにSWIGを使用しました。あなたの質問からは、Python スクリプトで C++ プログラムを呼び出したいのか、C++ で Python を呼び出したいだけなのかが明確ではありませんでした。

Python 関数の多くは、Python インタープリターに組み込まれていないモジュールを使用します。Python スクリプトがこれらの関数を呼び出す場合、ユーザーに Python をインストールさせるか、アプリケーションに Python ランタイム ファイルを含める必要があります。Python スクリプトにインポートするモジュールによって異なります。

于 2008-09-08T08:36:45.307 に答える
2

ブーストはおそらく最良の選択ですが、よりスタンドアロンなものが必要な場合、およびこれが Windows で使用する場合 (Python をインストールする可能性が最も低い人々であることを考えると、これは実現可能と思われます)、py2exeを使用してCOM オブジェクトに適したエントリ ポイントを持つ DLL を作成します。その後、COM 経由でライブラリとやり取りできます。(明らかに、これはクロスプラットフォーム ソリューションとしてはまったく役に立ちません)。

于 2008-09-08T10:37:53.627 に答える