有问题的节目是Pydial。我使用此命令在pycharm中运行它。
python pydial.py chat config / Tut-hdc-CamInfo.cfg
我只能在终端上运行它。我正在尝试调试程序,但只是没有运行程序。
如何在运行程序时调试程序?我希望看到程序运行时正在执行的类和方法的顺序,而不是当前的情况,我可以看到正在执行的类和方法的顺序,但程序没有运行(我无法提供任何输入该计划)。
答案 0 :(得分:0)
要在脚本开头调试,请添加-m pdb
。进入调试器后,键入n
执行下一行,s
进入函数,或exit
停止调试。键入?
以查看所有pdb选项。
python -m pdb pydial.py chat config/Tut-hdc-CamInfo.cfg
> /home/jdb-work/repos/pydial/pydial.py(25)<module>()
-> import os
(Pdb) list
20 # See the License for the specific language governing permissions and
21 # limitations under the License.
22 #
23 ###############################################################################
24
25 -> import os
26 from scriptine import run, path, log, command
27 import re
28 import numpy as np
29
30 # Uncomment for mac os users
(Pdb) ?
Documented commands (type help <topic>):
========================================
EOF bt cont enable jump pp run unt
a c continue exit l q s until
alias cl d h list quit step up
args clear debug help n r tbreak w
b commands disable ignore next restart u whatis
break condition down j p return unalias where
Miscellaneous help topics:
==========================
exec pdb
Undocumented commands:
======================
retval rv
(Pdb) exit
如果您知道要调试的代码行,可以直接将import pdb; pdb.set_trace()
插入脚本中,然后正常运行该命令。这将在确切的时间点停止执行。
python pydial.py chat config/Tut-hdc-CamInfo.cfg
您可以安装的替代调试器是IPython调试器ipdb。要使用它,您可以添加-m ipdb
或插入import ipdb; ipdb.set_trace()
并再次正常运行该命令。
下面是重现我的例子的代码:
git clone git@bitbucket.org:dialoguesystems/pydial.git
cd pydial
# Switch the commit I used when creating this example
git checkout c215003f25b959ee350e192079d88e138e6e8dbf
# Create a conda environment
conda create -n pydial python=2.7 ipython ipdb
source activate pydial
pip install -r requirements.txt
# All the requirements weren't in requirements.txt
pip install scriptine matplotlib
python -m pdb pydial.py chat config/Tut-hdc-CamInfo.cfg