10

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

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

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

4

1 回答 1

0

你有没有考虑过使用python 调试器

>>> import pdb
>>> import yourmodule
>>> pdb.run('yourmodule.test()')
于 2013-04-30T16:56:34.757 回答