在C/ c++程序中嵌入ippython -shell

Embedding IPython-shell in C/C++-program

本文关键字:ippython -shell 程序 c++      更新时间:2023-10-16

我有一个c++程序,它允许我运行python脚本,c++将数据传递给它。如果python脚本失败,c++程序调用PyRun_InteractiveLoop以允许在交互式shell上调查问题。这工作得很好,但我认为"如果安装了IPython,我可以在这种情况下使用它会很酷"。

现在我的问题是:我在寻找"ipython嵌入"时发现的是如何将ipython嵌入到python程序中的说明(其中包括http://ipython.org/ipython-doc/dev/interactive/reference.html#embedding-ipython)。我试图在我拥有的嵌入式常规python-shell上重现这些,但大多数都以某种方式失败了(通常是因为缺少sys。argv……这个问题我能解决)。

有什么建议吗?我的第一个计划是首先通过C-API导入IPython(我已经介绍过了)。如果失败,使用"常规"shell。否则通过PyRun_InteractiveOneFlags

调用IPython.embed()(或类似)

是否考虑过使用python调试器

>>> import pdb
>>> import yourmodule
>>> pdb.run('yourmodule.test()')