{"id":1141,"date":"2011-07-22T12:43:41","date_gmt":"2011-07-22T10:43:41","guid":{"rendered":"http:\/\/linux.leunen.com\/?p=1141"},"modified":"2011-07-22T12:43:41","modified_gmt":"2011-07-22T10:43:41","slug":"debugger-un-script-python","status":"publish","type":"post","link":"https:\/\/www.leunen.com\/linux\/2011\/07\/debugger-un-script-python\/","title":{"rendered":"D\u00e9bugger un script python"},"content":{"rendered":"<p>Si comme moi, vous utilisez un simple \u00e9diteur de texte du genre geany pour \u00e9crire vos scripts et programmes en python, il y a des chances que vous fassiez comme moi et que vous utilisiez l&rsquo;instruction <em>print<\/em> pour d\u00e9bugger vos programmes. Ca fonctionne tr\u00e8s bien pour autant que le programme ne soit pas trop long et surtout que le bug ne soit pas trop vicieux. Il existe toujours la possibilit\u00e9 d&rsquo;utiliser un IDE du genre <em>Eric<\/em>, <em>pyCharm<\/em> ou encore <em>WingIDE<\/em> mais les meilleurs ne sont pas gratuits et je ne ressens pas l&rsquo;utilit\u00e9 d&rsquo;utiliser de tels programmes.<\/p>\n<p>Pourtant il y a moyen de d\u00e9bugger simplement son programme en utilisant <em>pdb<\/em>, le <em>Python Debugger<\/em>. Ceux qui ont d\u00e9j\u00e0 programm\u00e9 en C ou en C++ verront une ressemblance avec <em>gdb<\/em>.<br \/>\nDe fa\u00e7on basique, le d\u00e9bugger peut s&rsquo;appeler de deux mani\u00e8res.<br \/>\nLa premi\u00e8re consiste \u00e0 lancer le d\u00e9bugger puis \u00e0 tester le programme dans celui-ci:<\/p>\n<pre class=\"codesource\">\r\n$ python\r\nPython 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24) \r\n[GCC 4.5.2] on linux2\r\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\r\n>>> import pdb\r\n>>> import mon_programme\r\n>>> mon_programme.main()\r\n<\/pre>\n<p>On importe le d\u00e9bugger ainsi que le programme que vous voulez tester sous forme de module. Ensuite on appelle la fonction que l&rsquo;on veut tester. Dans l&rsquo;exemple ici, je veux tester la fonction main() de mon programme.<\/p>\n<p>La seconde m\u00e9thode qui est celle que j&rsquo;utilise parce que je la trouve plus simple \u00e0 mettre en oeuvre, est d&rsquo;ins\u00e9rer la ligne suivante dans mon code l\u00e0 o\u00f9 je veux qu&rsquo;il s&rsquo;arr\u00eate (insertion d&rsquo;un breakpoint). \u00e0 ce moment, le prompt pdb s&rsquo;affiche et je n&rsquo;ai plus qu&rsquo;\u00e0 entrer les commandes du d\u00e9bugger que je veux utiliser. <\/p>\n<pre class=\"codesource\">\r\nimport pdb; pdb.set_trace();\r\n<\/pre>\n<p>Les commandes du d\u00e9bugger permettent d&rsquo;ex\u00e9cuter les lignes de code une \u00e0 une, d&rsquo;ex\u00e9cuter un ensemble de lignes, de mettre des breakpoints conditionnels ou non, d&rsquo;afficher le contenu d&rsquo;une variable et plein d&rsquo;autres choses. Je vous renvoie \u00e0 la documentation sur <em><a href=\"http:\/\/docs.python.org\/library\/pdb.html\">pdb<\/a><\/em> pour les d\u00e9tails sur les commandes disponibles dans le d\u00e9bugger et plus g\u00e9n\u00e9ralement sur le d\u00e9bugger lui-m\u00eame. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si comme moi, vous utilisez un simple \u00e9diteur de texte du genre geany pour \u00e9crire vos scripts et programmes en python, il y a des chances que vous fassiez comme moi et que vous utilisiez l&rsquo;instruction print pour d\u00e9bugger vos programmes. Ca fonctionne tr\u00e8s bien pour autant que le programme ne soit pas trop long [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[15],"tags":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"D\u00e9bugger un script python\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Michel Leunen\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.leunen.com\/linux\/2011\/07\/debugger-un-script-python\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Autour de Linux | Ubuntu, linux, C++, audio, python, ...\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"D\u00e9bugger un script python | Autour de Linux\" \/>\n\t\t<meta property=\"og:description\" content=\"D\u00e9bugger un script python\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.leunen.com\/linux\/2011\/07\/debugger-un-script-python\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2011-07-22T10:43:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2011-07-22T10:43:41+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"D\u00e9bugger un script python | Autour de Linux\" \/>\n\t\t<meta name=\"twitter:description\" content=\"D\u00e9bugger un script python\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2011\\\/07\\\/debugger-un-script-python\\\/#article\",\"name\":\"D\\u00e9bugger un script python | Autour de Linux\",\"headline\":\"D\\u00e9bugger un script python\",\"author\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/author\\\/michel-leunen\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/#organization\"},\"datePublished\":\"2011-07-22T12:43:41+02:00\",\"dateModified\":\"2011-07-22T12:43:41+02:00\",\"inLanguage\":\"fr-FR\",\"commentCount\":1,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2011\\\/07\\\/debugger-un-script-python\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2011\\\/07\\\/debugger-un-script-python\\\/#webpage\"},\"articleSection\":\"python\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2011\\\/07\\\/debugger-un-script-python\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.leunen.com\\\/linux\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/category\\\/python\\\/#listItem\",\"name\":\"python\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/category\\\/python\\\/#listItem\",\"position\":2,\"name\":\"python\",\"item\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/category\\\/python\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2011\\\/07\\\/debugger-un-script-python\\\/#listItem\",\"name\":\"D\\u00e9bugger un script python\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2011\\\/07\\\/debugger-un-script-python\\\/#listItem\",\"position\":3,\"name\":\"D\\u00e9bugger un script python\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/category\\\/python\\\/#listItem\",\"name\":\"python\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/#organization\",\"name\":\"Autour de Linux\",\"description\":\"Ubuntu, linux, C++, audio, python, ...\",\"url\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/author\\\/michel-leunen\\\/#author\",\"url\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/author\\\/michel-leunen\\\/\",\"name\":\"Michel Leunen\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2011\\\/07\\\/debugger-un-script-python\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/41e08d5087493eaa9ce4ebd4e0a55ffb?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Michel Leunen\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2011\\\/07\\\/debugger-un-script-python\\\/#webpage\",\"url\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2011\\\/07\\\/debugger-un-script-python\\\/\",\"name\":\"D\\u00e9bugger un script python | Autour de Linux\",\"description\":\"D\\u00e9bugger un script python\",\"inLanguage\":\"fr-FR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2011\\\/07\\\/debugger-un-script-python\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/author\\\/michel-leunen\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/author\\\/michel-leunen\\\/#author\"},\"datePublished\":\"2011-07-22T12:43:41+02:00\",\"dateModified\":\"2011-07-22T12:43:41+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/#website\",\"url\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/\",\"name\":\"Autour de Linux\",\"description\":\"Ubuntu, linux, C++, audio, python, ...\",\"inLanguage\":\"fr-FR\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"D\u00e9bugger un script python | Autour de Linux","description":"D\u00e9bugger un script python","canonical_url":"https:\/\/www.leunen.com\/linux\/2011\/07\/debugger-un-script-python\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.leunen.com\/linux\/2011\/07\/debugger-un-script-python\/#article","name":"D\u00e9bugger un script python | Autour de Linux","headline":"D\u00e9bugger un script python","author":{"@id":"https:\/\/www.leunen.com\/linux\/author\/michel-leunen\/#author"},"publisher":{"@id":"https:\/\/www.leunen.com\/linux\/#organization"},"datePublished":"2011-07-22T12:43:41+02:00","dateModified":"2011-07-22T12:43:41+02:00","inLanguage":"fr-FR","commentCount":1,"mainEntityOfPage":{"@id":"https:\/\/www.leunen.com\/linux\/2011\/07\/debugger-un-script-python\/#webpage"},"isPartOf":{"@id":"https:\/\/www.leunen.com\/linux\/2011\/07\/debugger-un-script-python\/#webpage"},"articleSection":"python"},{"@type":"BreadcrumbList","@id":"https:\/\/www.leunen.com\/linux\/2011\/07\/debugger-un-script-python\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux#listItem","position":1,"name":"Home","item":"https:\/\/www.leunen.com\/linux","nextItem":{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux\/category\/python\/#listItem","name":"python"}},{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux\/category\/python\/#listItem","position":2,"name":"python","item":"https:\/\/www.leunen.com\/linux\/category\/python\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux\/2011\/07\/debugger-un-script-python\/#listItem","name":"D\u00e9bugger un script python"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux\/2011\/07\/debugger-un-script-python\/#listItem","position":3,"name":"D\u00e9bugger un script python","previousItem":{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux\/category\/python\/#listItem","name":"python"}}]},{"@type":"Organization","@id":"https:\/\/www.leunen.com\/linux\/#organization","name":"Autour de Linux","description":"Ubuntu, linux, C++, audio, python, ...","url":"https:\/\/www.leunen.com\/linux\/"},{"@type":"Person","@id":"https:\/\/www.leunen.com\/linux\/author\/michel-leunen\/#author","url":"https:\/\/www.leunen.com\/linux\/author\/michel-leunen\/","name":"Michel Leunen","image":{"@type":"ImageObject","@id":"https:\/\/www.leunen.com\/linux\/2011\/07\/debugger-un-script-python\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/41e08d5087493eaa9ce4ebd4e0a55ffb?s=96&d=mm&r=g","width":96,"height":96,"caption":"Michel Leunen"}},{"@type":"WebPage","@id":"https:\/\/www.leunen.com\/linux\/2011\/07\/debugger-un-script-python\/#webpage","url":"https:\/\/www.leunen.com\/linux\/2011\/07\/debugger-un-script-python\/","name":"D\u00e9bugger un script python | Autour de Linux","description":"D\u00e9bugger un script python","inLanguage":"fr-FR","isPartOf":{"@id":"https:\/\/www.leunen.com\/linux\/#website"},"breadcrumb":{"@id":"https:\/\/www.leunen.com\/linux\/2011\/07\/debugger-un-script-python\/#breadcrumblist"},"author":{"@id":"https:\/\/www.leunen.com\/linux\/author\/michel-leunen\/#author"},"creator":{"@id":"https:\/\/www.leunen.com\/linux\/author\/michel-leunen\/#author"},"datePublished":"2011-07-22T12:43:41+02:00","dateModified":"2011-07-22T12:43:41+02:00"},{"@type":"WebSite","@id":"https:\/\/www.leunen.com\/linux\/#website","url":"https:\/\/www.leunen.com\/linux\/","name":"Autour de Linux","description":"Ubuntu, linux, C++, audio, python, ...","inLanguage":"fr-FR","publisher":{"@id":"https:\/\/www.leunen.com\/linux\/#organization"}}]},"og:locale":"fr_FR","og:site_name":"Autour de Linux | Ubuntu, linux, C++, audio, python, ...","og:type":"article","og:title":"D\u00e9bugger un script python | Autour de Linux","og:description":"D\u00e9bugger un script python","og:url":"https:\/\/www.leunen.com\/linux\/2011\/07\/debugger-un-script-python\/","article:published_time":"2011-07-22T10:43:41+00:00","article:modified_time":"2011-07-22T10:43:41+00:00","twitter:card":"summary","twitter:title":"D\u00e9bugger un script python | Autour de Linux","twitter:description":"D\u00e9bugger un script python"},"aioseo_meta_data":{"post_id":"1141","title":"D\u00e9bugger un script python | #site_title","description":"D\u00e9bugger un script python","keywords":[{"label":"python,pdb,set_trace(),d\u00e9bugger,debugging,debugger","value":"python,pdb,set_trace(),d\u00e9bugger,debugging,debugger"}],"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-21 07:19:17","updated":"2025-06-23 21:09:34","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.leunen.com\/linux\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.leunen.com\/linux\/category\/python\/\" title=\"python\">python<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tD\u00e9bugger un script python\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.leunen.com\/linux"},{"label":"python","link":"https:\/\/www.leunen.com\/linux\/category\/python\/"},{"label":"D\u00e9bugger un script python","link":"https:\/\/www.leunen.com\/linux\/2011\/07\/debugger-un-script-python\/"}],"_links":{"self":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/1141"}],"collection":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/comments?post=1141"}],"version-history":[{"count":2,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/1141\/revisions"}],"predecessor-version":[{"id":1143,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/1141\/revisions\/1143"}],"wp:attachment":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/media?parent=1141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/categories?post=1141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/tags?post=1141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}