【问题标题】:Embedding IPython-shell in C/C++-program在 C/C++ 程序中嵌入 IPython-shell
【发布时间】:2013-04-24 16:12:49
【问题描述】:

我有一个 C++ 程序,它允许我运行 C++ 向其传递数据的 Python 脚本。如果 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(我已经介绍过)。如果失败,请使用“常规”外壳。否则通过 PyRun_InteractiveOneFlags

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

【问题讨论】:

    标签: c++ python ipython


    【解决方案1】:

    您是否考虑过使用python debugger

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

    【讨论】:

    • a) 这无论如何都有效 b) 这不是我想要的。通常的工作流程是“脚本失败 - 例如'矩阵尺寸不同意'。检查工作区以查看如何修复脚本”,并且 IPython 的功能(例如 Tab-completion)将使事情变得更加方便。而且我必须将它嵌入到 C++ 程序中,因为数据是由 C++ 程序传递的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 2010-09-09
    • 1970-01-01
    • 2012-03-04
    • 2011-07-24
    • 1970-01-01
    相关资源
    最近更新 更多