gpt4 book ai didi

python - 仅调试一个函数(或模块),在 Pycharm 中运行其余程序?

转载 作者:太空宇宙 更新时间:2023-11-03 17:03:36 26 4
gpt4 key购买 nike

我将尝试在简单的示例程序上解释我的问题(我的问题要复杂得多,因为我的程序要复杂得多)。

假设我有一个程序,有 2 行,有 2 个函数:

data = long_one()  #takes 2 hours in DEBUG mode, 15min in RUN mode
short_one(data) #i want to DEBUG this one

我们还可以说,准备 data 变量非常困难,获取它的唯一方法是运行函数 long_one()。

有没有办法在 Pycharm 中运行 long_one() 和调试 short_one() ?换句话说,有没有办法执行以下任一操作:

  1. 调试,并指定 long_one() 应在 RUN 模式下处理
  2. 或 RUN 并指定应调试 short_one()

最佳答案

正如 Asagen 所提议的:

  1. 将调试器附加到 python 控制台。
  2. 在运行模式下启动我的脚本
  3. 在脚本运行时,我执行了工具/附加到进程并选择了我的进程。

调试器从我执行此操作的那一刻起就开始运行,并在遇到的第一个断点处停止。

<小时/>

有一个不便之处 - 我必须知道何时开始调试(在哪一刻将调试器附加到进程)。我提出一个解决方法:

  1. 在代码中您想要开始调试的位置添加无限循环(见下文):
<小时/>
data = long_one()  # takes 2 hours in DEBUG mode, 15min in RUN mode
infinite_loop = True
print "OK man, it is the time to start debugging!"
while infinite_loop:
time.sleep(0.2) # add breakpoint here
short_one(data) #i want to DEBUG this one
<小时/>
  • 在 while 循环内添加断点
  • 运行进程时,当您在控制台中看到打印文本“OK man,是时候开始调试了!”时,请将调试器附加到进程。
  • 接下来,当它在无限循环中停止时,计算代码片段 infinite_loop = False,以便离开循环
  • 就是这样,在之前运行了整个代码之后,您现在处于 DEBUG 模式,

    如果你想回到运行模式,只需停止调试器即可。可以在您想要的任何位置多次在运行和调试之间切换

    关于python - 仅调试一个函数(或模块),在 Pycharm 中运行其余程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34789306/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com