2016-05-23 6 views
2

私はあなたがはPython.hを含める必要があることを知っているいくつかのことを知ることができたし、あなたが開き、通訳を閉鎖するC++プログラムからPythonスクリプトをどのように実行しますか?

Py_Initialize(); 
//code that runs the python script 
Py_Finalize(); 

を持っている必要があることが、その中央部には、私は失われました。私が主題で見つけることができる情報の大部分はPy_SimpleString()コマンドをいくつかの引数とともに使用します。私はしばらく検索してきましたが、コマンドが何をしているのか、それを正確にどのように使用するのかを明確に説明するドキュメントは見つかりません。

C++プログラムに値を直接渡すためにpythonスクリプトが必要なわけではありません。これはテキストファイルへの書き込みで、C++は必要な部分のテキストファイルを解析するだけです。私は実行するために.pyファイルを取得し、その機能をプリフォームする必要があります。

ご協力いただきましてありがとうございます。

答えて

3

C++プログラム内からPythonスクリプトを実行する最も簡単な方法は、PyRun_SimpleString()を介してです。 Pythonソーステキストを文字列として直接提供する代わりに、PyRun_SimpleString()の代わりにPyRun_SimpleFile()を呼び出すことができます。

+0

Pythonをインストールしていないシステムでも動作しますか? – DarkSuniuM

+1

Pythonライブラリをアプリケーションにリンクさせる必要があります。あなたが持っていると仮定すると、あなたのアプリケーションの実行可能ファイルに組み込まれているPythonインタプリタを使うので、Pythonをコンピュータに別々にインストールする必要はありません。 (あなたがインポートしたい.pyファイルをPythonロードパスのフォルダに置く必要があります) –

0

いくつかの良い情報源(https://docs.python.org/2/c-api/intro.html?highlight=py_initialize,https://docs.python.org/2/c-api/init.html?highlight=py_initialize)が見つかりましたか?

#include <Python.h> 

int main(int argc, char *argv[]) 
{ 
    Py_SetProgramName(argv[0]); /* optional but recommended */ 
    Py_Initialize(); 
    PyRun_SimpleString("from time import time,ctime\n" 
        "print 'Today is',ctime(time())\n"); 
    Py_Finalize(); 
    return 0; 
} 

あなたが保存されているスクリプトを実行する場合:this web pageの例に示すように

関連する問題