【发布时间】:2021-01-13 18:05:27
【问题描述】:
我有一个 Python 脚本,我希望能够从命令行进行调试。假设它被称为simple.py,它包含以下代码:
var1 = "Hello"
var2 = "World"
print(var1, var2)
我想调试这个。当然我可以从命令行使用调试器:
python -m pdb simple.py
但我想专门从另一个 python 文件中调试它。我尝试使用 subprocess 来执行此操作,方法是将这段代码放入另一个脚本 debug.py:
import subprocess
subprocess.Popen(["bash", "-ic", "python -m pdb simple.py"])
当我在 Bash shell 中运行它时,会发生这种情况:
$ python debug.py
$ > /[path]/simple.py(1)<module>()
-> var1 = "Hello"
(Pdb) n
bash: n: command not found
$
所以我输入了“n”,期望调试器移动到下一行。相反,它似乎只是直接回到 Bash,而调试器什么也不做。
知道为什么会这样吗?有没有办法从 Python 脚本中生成一个包含 Python 调试器的 Bash shell,我实际上可以用它来调试?
【问题讨论】:
标签: python bash debugging subprocess pdb