調試(debug)
- 將可疑環節的變量逐步打印出來,從而檢查哪里是否有錯。
- 讓程序一部分一部分地運行起來。從核心功能開始,寫一點,運行一點,再修改一點。
- 利用工具,例如一些IDE中的調試功能,提高調試效率。
Python CMD
python -m trace -t <py file> python -m dis <py file>
- 內置trace模塊:打印所有執行的語句
- 內置dis模塊:分析字節碼
Linux
strace -p pid # 用系統命令跟蹤系統調用
PyCharm Debug
PySnooper
“貧民版”Python調試工具:
https://github.com/cool-RR/PySnooper
- 允許執行以上相同的操作,只需為要調試的函數添加一個裝飾器即可,而不需要構建正確的 print 打印。
- 將得到函數的詳細日志,包括運行了哪些代碼行、何時運行以及何時更改了局部變量。
- 使用簡單,可以在任何龐大的代碼庫中使用,而無需進行任何設置。只需添加裝飾器,並為日志輸出地址指定路徑,方法是將其路徑指定為第一個參數。
- 允許執行以上相同的操作,只需為要調試的函數添加一個裝飾器即可,而不需要構建正確的 print 打印。
- 將得到函數的詳細日志,包括運行了哪些代碼行、何時運行以及何時更改了局部變量。
- 使用簡單,可以在任何龐大的代碼庫中使用,而無需進行任何設置。只需添加裝飾器,並為日志輸出地址指定路徑,方法是將其路徑指定為第一個參數。
參考信息
- 常用的Python調試工具:http://blog.jobbole.com/51062/
- Python 程序如何高效地調試?:https://www.zhihu.com/question/21572891
- Python 代碼調試技巧:https://www.ibm.com/developerworks/cn/linux/l-cn-pythondebugger/
- python調試:http://www.cnblogs.com/frchen/p/5752763.html