我有一些python代码,有许多子进程调用(例如,subprocess.check_call())。它显然无法调试到子进程。
有没有办法(例如添加代码)来实现它,或者我必须使用不同的调试器吗?
答案 0 :(得分:3)
事实证明,代码调用子进程也重定向了stdout:
subprocess.call(["called_program",
"-q", num_processes,
"-k", yaml_key],
stdout=logfile,
stderr=subprocess.STDOUT)
根据tdelaney的评论,我删除了重定向并在called_program.py
中添加了断点。现在我可以在该模块中使用pdb。
答案 1 :(得分:0)
如果您有pdb,则必须单步执行代码。如果您有源文件,请在您感兴趣的行中留下断点,并使用pdb自动停在您感兴趣的行。
这就是我们在.net中所做的事情。希望它也适用于python ..