【发布时间】:2013-06-09 01:51:51
【问题描述】:
我正在尝试调试我编写的可以从标准输入获取参数的 Python CLI。一个简单的测试用例的输出是
echo "test" | python mytool.py
相当于
的输出python mytool.py test
我想用这个工具调试一些问题,所以我尝试运行这个:
echo "test" | pdb mytool.py
但我得到这个输出,然后 pdb 退出:
> /path/to/mytool.py(5)<module>()
-> '''
(Pdb) *** NameError: name 'test' is not defined
(Pdb)
当我将-m python 添加到shebang 时,如果我在脚本中运行pdb.set_trace(),也会发生同样的事情。
这是怎么回事?
【问题讨论】:
-
您能否更改您的脚本以接受来自标准输入以外的文件的输入?
-
@user1901786 如何访问 CLI 脚本中的标准输入?使用
sys.stdin?另外,您只是想为此编写一个测试,还是需要在脚本中启动调试器?如果您需要调试器,您希望它在什么时候使用脚本?抱歉,这个问题我有点不清楚。 -
@Paul Sweatte。不是重复的。
-
我要做的是获取 PyCharm 社区版并尝试使用它进行调试。如果您可以手动输入或粘贴输入,则使用标准本地调试应该可以工作。如果您需要调试来自管道或重定向的输入,您可能必须使用远程调试,它的设置稍微复杂一些。
标签: python stdin pdb command-line-interface command-line-tool