1

我想这是一个奇怪的问题,但是假设您在 python 中运行一个代码,该代码执行一些计算成本很高的事情,例如图像处理。哦,顺便说一句,我正在运行 Ubuntu 12.04。所以我正在运行一个代码,然后打开另一个终端并输入 top 看看在做什么。这没关系,因为它告诉我 python 正在完成它的工作,但是如果我想查看代码上正在运行哪一行呢?这可能吗?更重要的是,获取这些信息是否值得?如有必要,我可以发布一些处理的示例代码

4

3 回答 3

2

不要眨眼,除非你的“代码行”速度慢得令人难以置信,否则这样的东西是没有用的。您可能想要的是 Python Profiler。我建议您开始在http://docs.python.org/2/library/profile.html中查找与分析您的 python 代码相关的信息。

于 2013-08-29T17:10:21.220 回答
1
  1. 它通常很慢,但您可以跟踪您的代码:

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

  3. 您可以使用分析器在代码中找到缓慢的地方。

  4. 您可以使用调试器逐步运行您的代码。只需在缓慢操作之前插入import pdb; pdb.set_trace()(或者ipdb如果您喜欢 ipython)。

于 2013-08-29T17:28:44.677 回答
0

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

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

去给自己找一个调试器吧!

于 2013-08-29T18:20:36.237 回答