PYTHON	DEBUGGER
Python	Meetup	
Bordeaux	–	Node
2016-03-09	
Damien	Garaud	/	@jazzydag
Y'A	UN	BUG	?
SCÈNE	DE	CRIME
Suspicion
Où
Motifs	(raison)
Résoudre	(corriger)
QUAND
Lors	d'un	test...
ou	d'un	run
Du	code	à	vous...
ou	pas
Y'A	LE	BON,	ET	LE	MAUVAIS
Celui	qui	saute	aux	yeux,	vous	avez	une	exception
Celui	qui	ne	se	voit	pas,	mais	vous	savez	qu'y...
LES	EXCEPTIONS	SONT	VOS	AMIES
NameError,	SyntaxError	et	ImportError
TypeError,	ValueError,	IndexError,	KeyError
AttributeE...
COMMENT	?
Le	1er	jour	vient	le	print()
Exceptions	ou	point	d'arrêt
Examiner	la	pile	d'appels
avec	un	IDE	ou	en	mode	"debug"
EXEMPLE
import	pandas	as	pd
def	main(fname):
				data	=	read_data(fname)
				result	=	data_processing(data)
				return	res...
PILE	D'APPELS
																					+------------------+
																					|						main()						|
																					|		...
LANCER	PYTHON	EN	MODE	DEBUG
python	-m	pdb	script.py
/path/to/script.py
(Pdb)	type	command	here
	:	Python	debuggeurpdb
PRINCIPALES	COMMANDES
h(elp)
c(ontinue)
l(ist)
s(tep)
n(ext)
u(p)
a(rgs)
q(uit)
IPYTHON
	:	lance	pdb	dans	IPython
	:	commande	magique	IPython
ipdb
%pdb
POINT	D'ARRÊT
S'arrêter	où	l'on	souhaite
import	pdb;	pdb.set_trace()
import	ipdb;	ipdb.set_trace()
On	doit	modifier	le	code
POINT	D'ARRÊT
Dans	le	débuggeur
breakpoint
1.	 On	lance	python	-m	pdb
2.	 Imports	nécessaires
3.	 b	funcname
AVANT	L'EXÉCUTION
Outils	d'analyse
pylint
pyflakes
MAIS	ÇA	MARCHAIT	AVANT
La	semaine	dernière,	ça	marchait,	je
t'assure
Gestionnaire	de	version	à	la	rescousse
git	bisect	--h...
UNE	CHOSE	À	RETENIR
Faites	des	tests	unitaires
MERCI	!
Prochain SlideShare
Chargement dans…5
×

Python debugger

149 vues

Publié le

Introduction au debugging Python

* S'appuyer sur les exceptions
* Commandes principales de pdb
* pylint & pyflakes pour analyser le code avant exécution
* git bisect pour trouver le commit de votre bug

Publié dans : Ingénierie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
149
Sur SlideShare
0
Issues des intégrations
0
Intégrations
13
Actions
Partages
0
Téléchargements
1
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Python debugger

  1. 1. PYTHON DEBUGGER Python Meetup Bordeaux – Node 2016-03-09 Damien Garaud / @jazzydag
  2. 2. Y'A UN BUG ?
  3. 3. SCÈNE DE CRIME Suspicion Où Motifs (raison) Résoudre (corriger)
  4. 4. QUAND Lors d'un test... ou d'un run Du code à vous... ou pas
  5. 5. Y'A LE BON, ET LE MAUVAIS Celui qui saute aux yeux, vous avez une exception Celui qui ne se voit pas, mais vous savez qu'y a un blème
  6. 6. LES EXCEPTIONS SONT VOS AMIES NameError, SyntaxError et ImportError TypeError, ValueError, IndexError, KeyError AttributeError, IOError, MemoryError
  7. 7. COMMENT ? Le 1er jour vient le print() Exceptions ou point d'arrêt Examiner la pile d'appels avec un IDE ou en mode "debug"
  8. 8. EXEMPLE import pandas as pd def main(fname): data = read_data(fname) result = data_processing(data) return result def read_data(fname): data = pd.read_csv(fname) return data def data_processing(data): return data.query("age <= 60") if __name__ == '__main__': df = main("data.csv")
  9. 9. PILE D'APPELS +------------------+ | main() | | | +------------------+ +------------------+ | read_data() | | | +------------------+ +------------------+ | processing() | | | +------------------+ Comme une pile en faite
  10. 10. LANCER PYTHON EN MODE DEBUG python -m pdb script.py /path/to/script.py (Pdb) type command here : Python debuggeurpdb
  11. 11. PRINCIPALES COMMANDES h(elp) c(ontinue) l(ist) s(tep) n(ext) u(p) a(rgs) q(uit)
  12. 12. IPYTHON : lance pdb dans IPython : commande magique IPython ipdb %pdb
  13. 13. POINT D'ARRÊT S'arrêter où l'on souhaite import pdb; pdb.set_trace() import ipdb; ipdb.set_trace() On doit modifier le code
  14. 14. POINT D'ARRÊT Dans le débuggeur breakpoint 1. On lance python -m pdb 2. Imports nécessaires 3. b funcname
  15. 15. AVANT L'EXÉCUTION Outils d'analyse pylint pyflakes
  16. 16. MAIS ÇA MARCHAIT AVANT La semaine dernière, ça marchait, je t'assure Gestionnaire de version à la rescousse git bisect --help
  17. 17. UNE CHOSE À RETENIR Faites des tests unitaires
  18. 18. MERCI !

×