【问题标题】:start interactive mode on a specific script line在特定脚本行上启动交互模式
【发布时间】:2012-08-01 13:07:05
【问题描述】:

我需要像往常一样运行我的 Python 脚本,但我想在特定行停止执行并启动交互模式。

换句话说,我希望能够在那时检查所有变量的值,然后在 python 的命令行上继续自己。

我该怎么做?

【问题讨论】:

  • 如果调试模式是我上面描述的,那么是的!
  • 只要您尝试调试代码,答案中的方法就是您应该采用的方法。如果您作为用户而不是作为脚本开发人员确实需要这种功能,那么您应该寻找在脚本执行期间获取用户输入或将代码重新组织为函数、方法和模块的方法。

标签: python interactive


【解决方案1】:

使用调试器并添加断点。你使用 IDE 吗?所有主要的 IDE 都支持调试器。在 CLI 中,您可以使用 pdb

【讨论】:

    【解决方案2】:

    这可以通过code 模块来完成。最简单的方法是拨打code.interact()

    【讨论】:

    • 你确定吗?它只是看起来像打开了一个 python shell,就是这样。我无法在我的代码中查找在code.interact() 之前定义的任何变量,所以我真的不知道如何使用这个函数。
    • @Ricky 你必须使用local 参数:code.interact(local=locals())
    【解决方案3】:

    不完全是您要查找的内容,但您可以通过在您希望程序中断的任何位置添加此行来轻松地将程序中断到 pdb(Python 调试器):

    import pdb; pdb.set_trace()
    

    然后您可以像这样轻松检查变量:

    p variable_name
    

    您还可以步进、继续等。

    关于 pdb here 的更多详细信息。

    【讨论】:

      【解决方案4】:

      除非您将其用于生产目的,否则我认为最好的方法是使用交互式调试器:

      http://infohost.nmt.edu/tcc/help/pubs/python/web/pdb.html

      http://onlamp.com/pub/a/python/2005/09/01/debugger.html

      出于其他目的考虑可能对您的代码做方面,使用装饰器从方法类中获取运行时特征:

      http://www.cs.tut.fi/~ask/aspects/index.shtml

      http://www.linuxtopia.org/online_books/programming_books/python_programming/python_ch26.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-29
        • 2014-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多