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 :

Faire du debug dans le code


Sujet :

Python

  1. #1
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut Faire du debug dans le code
    Bonjour

    je souhaite connaitre le contenu d'une variable, pour cela je souhaite passer par pdb :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import pdb
    pdb.set_trace()
    print params
    Et j'obtiens et non le contenu de ma variable params !!

    Pouvez m'aider, merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Salut,
    Si on fait cela çà donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    C:\py_works\bidon\test_windows>py -3.2 foo.py
    > c:\py_works\bidon\test_windows\foo.py(4)<module>()
    -> print (params)                    # arrêt après .set_trace +
    (Pdb) list                            # affichage de l'instruction suivante(*) 
      1     import pdb
      2     params = dict(a=1, b=2)
      3     pdb.set_trace()
      4  -> print (params)              #(*) que montre '->'
      5
    [EOF]
    (Pdb) print params                  # au prompt pdb, on regarde ce qu'on
    {'a': 1, 'b': 2}                        # peut
    (Pdb)
    Vous voulez faire quoi?
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Vous voulez faire quoi?
    J'ai un paramètre d'une méthode dont je ne connais pas la valeur. J'aimerais donc savoir se qu'elle contient.
    J'ai placé ce bout de code dans python (qui est une application web) et j'aimerais visualiser le "print params" dans ma page web.
    Tu me proposes de passer par un terminal, cela est obligatoire ?

    Merci de ton aide

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Salut,
    Citation Envoyé par Général03 Voir le message
    Tu me proposes de passer par un terminal, cela est obligatoire ?
    Combien de lignes de code êtes vous prêt à écrire pour afficher la sortie du print dans une page web?
    Pourquoi ne pas lancer le serveur Web en mode console ou mieux en mode debug via un IDE?

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

  5. #5
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Combien de lignes de code êtes vous prêt à écrire pour afficher la sortie du print dans une page web?
    On va dire peu importe car ça me permettra de l'utiliser une autre fois si besoin est.

    Pourquoi ne pas lancer le serveur Web en mode console ou mieux en mode debug via un IDE?
    Ben faite c'est suite à un event (soumission de formulaire) que je voudrais connaitre le contenu de params. Et j'imagine que déclencher cet event en console ça ne va pas pouvoir être possible

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Salut,
    Citation Envoyé par Général03 Voir le message
    Ben faite c'est suite à un event (soumission de formulaire) que je voudrais connaitre le contenu de params. Et j'imagine que déclencher cet event en console ça ne va pas pouvoir être possible
    Le formulaire est soumis via un navigateur.
    Côté serveur Web, s'il suffit d'afficher le contenu de params sue la console ou dans un fichier log, çà ne devrait pas être trop compliqué.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    En faite je place ceci dans mon code python
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import pdb
    pdb.set_trace()
    print params
    Et dans un terminal je fait un et je tape Et j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    *** NameError: name 'params' is not defined

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 46
    Par défaut
    Bonjour,

    import pdb

    params = pdb.set_trace()
    print params
    Cordialement.

  9. #9
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    j'ai due louper quelque chose, ça marche toujours pas. Pouvez vous m'indiquer des tutos, merci

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Salut,

    Soit vous lancez pdb via python -m pdb soit vous faite un import pdb suivi de pdb.set_trace. Ce n'est pas exclusif, mais ce qui aura été exécuté avant que le prompt "(Pdb) " s'affiche change!!!

    Exemple. main.py contient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    params = dict(a=1, b=2)
    print (params)
    Je lance le prog. sous pdb via:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    C:\py_works\bidon>py -3.3 -m pdb pbd_sample.py
    > c:\py_works\bidon\pbd_sample.py(2)<module>()
    -> params = dict(a=1, b=2)
    (Pdb)
    La '->' indique l'instruction suivante. Et c'est la première du prog.
    Si on veut afficher son contenu via "!" ou "print", çà rale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    (Pdb) !params
    *** NameError: name 'params' is not defined
    l'interpréteur n'a pas encore créé la variable...

    Côté tuto, il y a celui D.Hellmann.

    Je ne comprend toujours pas pourquoi vous voulez utiliser pdb après avoir mis un "print params" dans votre code. "print params" devrait suffire, non?
    Bon courage,
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Je me penche sur le lien, merci
    Je ne comprend toujours pas pourquoi vous voulez utiliser pdb après avoir mis un "print params" dans votre code. "print params" devrait suffire, non?
    Ben je veux connaitre le contenu de ma variable params suite à une soumission de formulaire

Discussions similaires

  1. Probleme pour faire le menage dans son code
    Par Nikogram dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 18/12/2009, 15h49
  2. Réponses: 2
    Dernier message: 31/10/2007, 10h30
  3. Réponses: 11
    Dernier message: 05/04/2007, 13h13
  4. faire le menage dans le code
    Par star_light dans le forum MFC
    Réponses: 2
    Dernier message: 18/02/2005, 11h00
  5. [CR]Comment faire de longs commentaires dans le code
    Par liberio dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 07/06/2004, 20h45

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