IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

comment déboguer un script


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingenieur d'étude
    Inscrit en
    Janvier 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingenieur d'étude
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2017
    Messages : 16
    Points : 5
    Points
    5
    Par défaut comment déboguer un script
    Bonjour,

    Débutant en python, je ne comprends pas comment on peut déboguer un script. J'ai crû comprendre que l'on ne peut pas sonder la valeur d'une variable avec print. Je ne comprends pas comment utiliser le débogueur de python pdb, je n'arrive pas non plus à sonder les variables avec la fonction print même avec le débogguer !

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Pour déboguer un script, il faut déjà savoir le résultat qu'il est supposé produire. Si ce n'est pas le cas, il va falloir relire le script pour essayer de comprendre pourquoi il fait autre chose.

    "print" ou un debogueur symbolique permettent de visualiser les objets associés à certaines variables et vérifier qu'elles contiennent bien ce qu'on attend. Dit autrement, çà permet juste de confirmer qu'on comprend bien ce que Python fait lorsqu'il exécute le script.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingenieur d'étude
    Inscrit en
    Janvier 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingenieur d'étude
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2017
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    Oui, en fait quand je dit que je débute en python, je sais quand même programmer, ma question est de savoir seulement s'il est possible de visualiser une variable comme le font facilement d'autres langages comme R, notamment.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    J'ai crû comprendre que l'on ne peut pas sonder la valeur d'une variable avec print
    ben si justement, c'est ce que l'on fait habituellement, qu'est-ce qui t'en empêche ?

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par Stephlandes Voir le message
    ma question est de savoir seulement s'il est possible de visualiser une variable comme le font facilement d'autres langages comme R, notamment.
    Python est un langage comme les autres... Et les outils pour mettre au point les programmes sont semblables.
    Vous avez même des IDE "multi-langages" qui offrent des interfaces semblables pour éditer, exécuter, débugger...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Ingenieur d'étude
    Inscrit en
    Janvier 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingenieur d'étude
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2017
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    J'ai essayé avec un code ultra simple tel que celui-ci dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #!/usr/bin/python3
    a="toto"
    Et après exécution, quand je lui demande de m'écrire la variable a, il me dit qu'elle est inconnue ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    print(a)
    *** NameError: name 'a' is not defined

  7. #7
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>>a="toto"
    >>>print(a)
    toto
    >>>print(type(a))
    <class 'str'>
    Pas d'aide par mp.

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par Stephlandes Voir le message
    Et après exécution, quand je lui demande de m'écrire la variable a, il me dit qu'elle est inconnue ...
    "après exécution" de l'instruction, du script?
    Si vous savez programmer, vous savez que çà demande un peu de rigueur dans la description des problèmes...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Ingenieur d'étude
    Inscrit en
    Janvier 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingenieur d'étude
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2017
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Oui mais après exécution du script, ça ne fonctionne pas, d'où mon soucis car je souhaiterais déboguer une fois le script réalisé....

    Citation Envoyé par wiztricks Voir le message
    Oui désolé, erreur d’inattention, comme on fait tous..au passage, "çà" devrait plutôt s'écrire "ça", mais ce n'est que de l'orthographe...

  10. #10
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Une fois que le programme a été exécuté, reste-t-il qqchose en mémoire ? C'est ça la question ?
    Je ne comprends pas trop...
    Pas d'aide par mp.

  11. #11
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Vous éxécutez votre script comment ?

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Ingenieur d'étude
    Inscrit en
    Janvier 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingenieur d'étude
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2017
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Une fois que le programme a été exécuté, reste-t-il qqchose en mémoire ? C'est ça la question ?
    Je ne comprends pas trop...
    Oui, en effet, la question se résume à cela, car sous R, par exemple, je pouvais interroger mes variables après exécution du script pour comprendre ce qui n'avait pas fonctionné.

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Ingenieur d'étude
    Inscrit en
    Janvier 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingenieur d'étude
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2017
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par lg_53 Voir le message
    Vous éxécutez votre script comment ?
    J'utilise tout simplement la commande python mon_programme.py

  14. #14
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Citation Envoyé par Stephlandes Voir le message
    Oui, en effet, la question se résume à cela, car sous R, par exemple, je pouvais interroger mes variables après exécution du script pour comprendre ce qui n'avait pas fonctionné.
    Sous Spyder par exemple, mais avec d'autres éditeurs aussi, on peut visualiser l’explorateur de variables.
    Pas d'aide par mp.

  15. #15
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 817
    Points : 7 110
    Points
    7 110
    Par défaut
    Citation Envoyé par Stephlandes Voir le message
    Bonjour,

    Je ne comprends pas comment utiliser le débogueur de python pdb
    Un exemple simple,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    s = "hello world !"
    import pdb; pdb.set_trace()
    print(s)
    Vous exécutez ça dans un terminal, puis vous verrez un

    ça veut dire qu'il est arrivé à la ligne print(s) sans l'avoir exécuté.

    tapez s pour connaître la valeur de votre variable set vous verrez hello world !, c'est un cas très simple.

    Maintenant imaginons que vous êtes dans une boucle et que vous vouliez connaître la valeur d'une variable pour chaque itération, il suffit d'utiliser la touche c pour passer à l'itération suivante.

    Vous avez un tutoriel qui donne tous les raccourcis pour utiliser pdb.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  16. #16
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par Stephlandes Voir le message
    Oui, en effet, la question se résume à cela, car sous R, par exemple, je pouvais interroger mes variables après exécution du script pour comprendre ce qui n'avait pas fonctionné.
    R est un environnement de programmation très spécifique: faire des statistiques, visualiser des données, ...

    Python est un langage de programmation plus générique (comme C ou Java).

    D'ailleurs, vous ne pourrez pas faire avec un Python de base ce que vous faites avec R: il va falloir installer un tas de bibliothèques pour avoir des fonctionnalités équivalentes (et passer du temps à apprendre à les utiliser pour obtenir des résultats semblables).

    Et côté mise au point, il faudra apprendre à utiliser des outils génériques (un bon IDE et son debogueur symbolique ou plus simplement insérer des "print" dans le code pour afficher ce que vous voulez).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Ingenieur d'étude
    Inscrit en
    Janvier 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingenieur d'étude
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2017
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    R est un environnement de programmation très spécifique: faire des statistiques, visualiser des données, ...

    Python est un langage de programmation plus générique (comme C ou Java).

    D'ailleurs, vous ne pourrez pas faire avec un Python de base ce que vous faites avec R: il va falloir installer un tas de bibliothèques pour avoir des fonctionnalités équivalentes (et passer du temps à apprendre à les utiliser pour obtenir des résultats semblables).

    Et côté mise au point, il faudra apprendre à utiliser des outils génériques (un bon IDE et son debogueur symbolique ou plus simplement insérer des "print" dans le code pour afficher ce que vous voulez).

    - W
    Bonjour,

    Ah, très bien, merci beaucoup pour votre réponse bien complète et clair, je vais essayer d'utiliser un débogueur natif de python, j'avais essayé mais ca ne me paraissait pas très intuitif, je vais m'y replonger plus sérieusement alors. Bonnes fêtes de fin d'année, au passage !

  18. #18
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par Stephlandes Voir le message
    je vais essayer d'utiliser un débogueur natif de python, j'avais essayé mais ca ne me paraissait pas très intuitif
    Tout à fait, d'ailleurs pas grand monde ne s'en sert et préfère utiliser l'interface du debogueur symbolique d'un IDE (mais je pense vous l'avoir déjà dit).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [FAQ] Comment déboguer un script JavaScript ?
    Par SylvainPV dans le forum Contributions JavaScript / AJAX
    Réponses: 1
    Dernier message: 06/11/2013, 08h04
  2. comment executer un script perl svp?
    Par nico72 dans le forum Langage
    Réponses: 8
    Dernier message: 13/07/2005, 09h51
  3. [Poweramc 9.5] comment generé le script ?
    Par mictif dans le forum PowerAMC
    Réponses: 2
    Dernier message: 20/06/2005, 12h44
  4. Réponses: 1
    Dernier message: 23/02/2005, 11h23
  5. [DEBUTANT]Comment executer un script sql
    Par peaceinpal dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 15/03/2004, 08h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo