python - 使用来自终端的参数调试 python 脚本

标签 python bash debugging pdb

我有一个 python 脚本,它接受输入参数并运行以响应终端(bash、Mac OSX)中的以下命令。

python test.py arg1 arg2

有没有一种好方法可以在 Debug模式下运行相同的脚本,而无需编辑代码以包含 import pdbpdb.set_trace()

例如,如果我使用的是 iPython 控制台,我可以通过以下方式执行此操作:

%run -d test.py arg1 arg2

这很简单,不是吗?为了在终端中实现同样的事情,我认为以下可能有效,但它没有:

python -c "import pdb; import sys; sys.argv = ['test.py', arg1, arg2];pdb.run('test.py')"

代码以参数运行,但不是在 pdb 的 Debug模式下。是不是很难做到,我应该坚持使用 pdb.set_trace 还是 iPython 的 %run -d

最佳答案

尝试:

python -m pdb test.py arg1 arg2

运行 python -m pdb 运行 pdb作为脚本。如果 test.py 在您的路径中而不是您当前的工作目录中,这可能是一个有用的替代品:

python -m pdb "$(which test.py)" arg1 arg2

关于python - 使用来自终端的参数调试 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29560904/

相关文章:

linux - 如果遇到10或20如何删除变量的最后一位?

c# - 抑制来自动态类型的 RuntimeBinderException 消息

c# - 当 Gen2 中存在大量对象时,使用 WinDbg 查找内存泄漏

python - 在 Python 中将数字字符串的键拆分为单个数字键

R Markdown : Can't access Bash command installed through Conda/Anaconda

python - 同时引发两个错误

string - shell 脚本 : How to check if variable is null or no

ruby-on-rails - 为什么 Rails 调试器不默认为自动重新加载?

Python选择矩阵元素

javascript - JSON 语法错误 : Unexpected end of input