之前跟踪代码所使用的方法是:print
然而昨天遇到了谜之问题,程序给跟丢了。
程序莫名其妙地再次调用了_call_view
所以今天一直在搜索如何在pycharm做断点调试
如果是单个小测试程序,打断点,单步调试完全没问题
但是,现在的情况是在浏览器中输入HTTP请求后,执行API文件时没有停在断点处
debug只是把当前文件从头到脚执行了一遍,然而该文件只是定义了许多类和方法,根本就不会执行
于是搜索一番,确定应该是要开启远程调试,浏览器相当于客户端,pycharm充当服务端
问题来了:pycharm安装目录下找不到pycharm-debug.egg
郁闷许久,想下载个,找不到。。。然而没有安装这个egg的话,添加debug选项时没有remote项,后续步骤无法进行。
最后猜测:版本问题。由于我使用的是免费版community edition,可能阉割掉了很多文件。
于是下载个收费版试用,证明我的猜测正确。
本来以为这样可以了吧,但是跑起来就报错:no module named pydevd.
但是刚刚明明安装了egg啊~
后来大神告诉我,由于代码是跑在自己的虚拟环境里的,而我是安装在本机的pydevd,所以才会报错。然后要求在ichnaea/bin下安装egg。无果,大概是由于开始做编译的时候,我加了许多sudo 进去,存在权限问题。
已经放弃远程调试。但今天意外邂逅pdb调试,这种方式跟以前大学调试汇编代码的方法几乎一模一样。
参考博文十分详细:pdb调试方法
使用了半天,觉得很好使很方便。