有没有办法看到当前运行的代码行?

时间:2013-08-29 17:06:10

标签: python python-2.7

我想这是一个奇怪的问题,但是让我们说你在python中运行一个代码计算成本高昂的代码,比如图像处理。哦顺便说一句,我正在运行Ubuntu 12.04。所以我正在运行一个代码,打开另一个终端并键入top以查看正在执行的操作。这是好的,因为它告诉我python正在完成它的工作,但是如果我想看看代码上运行了哪一行呢?这可能吗?更重要的是获得这些信息是否值得?如有必要,我可以发布一些处理的示例代码

3 个答案:

答案 0 :(得分:2)

不要眨眼,除非你的“代码行”速度令人难以置信地慢,否则这种事情无法发挥作用。你可能想要的是一个Python Profiler。我建议你开始查看http://docs.python.org/2/library/profile.html以获取与分析你的python代码相关的信息。

答案 1 :(得分:1)

  1. 通常很慢,但您可以trace编码:

    python -m trace --count -C . somefile.py ...
    
  2. 更多手动但传统方式是记录:您可以在慢速操作之前和之后插入打印语句。

  3. 您可以使用profiler在代码中找到速度较慢的地方。

  4. 您可以使用调试器逐步运行代码。如果您喜欢ipython,只需插入import pdb; pdb.set_trace()(或ipdb,然后再进行慢速操作。

答案 2 :(得分:0)

这是debugger的经典用例。使用Eclipse插件查看PyDev,这是一个用于Python的IDE,具有有用的调试器集成。

例如,调试器允许您设置执行将停止的断点,以便您手动单步执行相关代码行以查看其运行方式。同时,您可以检查变量的内容。因此,您将更好地了解正在发生的事情,失败的地点和原因,等等。

去自己调试一下!