私は、C++がデータを渡すPythonスクリプトを実行できるようにするC++プログラムを持っています。 Pythonスクリプトが失敗した場合、C++プログラムはPyRun_InteractiveLoopを呼び出して、対話型シェルで問題を調査できるようにします。これは問題なく動作しますが、「IPythonがインストールされていれば、私はそれを使用することができますか?」と思ったのです。C/C++ - プログラムにIPython-shellを埋め込む
私の問題は、「ipython embedding」を探すときに、IPythonをPythonプログラムに埋め込む方法です(他のものの中では、http://ipython.org/ipython-doc/dev/interactive/reference.html#embedding-ipythonの中にあります)。私は組み込みの通常のPythonシェルでこれらを再現しようとしましたが、それらのほとんどは何らかの方法で失敗します(通常はsys.argvがないために解決できます)。
どのようにすればいいですか?私の最初の計画は、最初にIPythonをC-API経由でインポートすることでした(私がカバーしたもの)。それが失敗した場合は、 "通常の"シェルを使用してください。それ以外の場合はPyRun_InteractiveOneFlags
を使用して考えがあります。通常のワークフローは「スクリプトが失敗します。たとえば、「Matrixのディメンションに同意しません」などです。スクリプトの修正方法を確認するためにワークスペースを検査します.IPythonの機能(Tab-completionなど)を使用すると便利です。私はC++プログラムに埋め込まなければなりません。なぜなら、データはC++プログラムに渡されるからです – bgschaid