2013-04-30 66 views
7

我有一个C++程序,它允许我运行C++传递数据的Python脚本。如果Python脚本失败,则C++程序调用PyRun_InteractiveLoop以允许在交互式shell上调查问题。这工作正常,但我认为“如果安装了IPython,我会很酷,我可以在这种情况下使用它”。在C/C++中嵌入IPython-shell - 程序

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

任何建议如何做到这一点?我的第一个计划是通过C-API首先导入IPython(我已经介绍了一个)。如果失败,则使用“常规”shell。否则,通过PyRun_InteractiveOneFlags

回答

0

调用IPython.embed()(或类似)你有没有使用python debugger

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

a)本作品无论如何B)这是不是我想要的考虑。通常的工作流程是“脚本失败 - 例如”矩阵维度不同意“检查工作区以查看如何修复脚本”,并且IPython的功能(例如Tab-completion)会使事情变得更加方便。我必须将它嵌入到C++程序中,因为数据是由C++程序传递的 – bgschaid 2013-05-01 08:13:47