Debuggen mit pycharm, wie man in ein Projekt einsteigt, ohne django-Bibliotheken einzugeben

8

Denken Sie über dieses Szenario nach:

Ich debugge mein Django-Projekt und gehe durch den Code (hinein und heraus). Der Debugger gibt manchmal Django-Bibliotheken oder andere externe Bibliotheken ein.

Kann jemand verhindern, dass der Debugger externen Code eingibt? Oder zumindest ein 'großer' Schritt, um den Debugger zurück zum Projektcode zu bringen?

    
Dan 01.03.2013, 18:35
quelle

2 Antworten

6
  

Kann jemand verhindern, dass der Debugger externen Code eingibt?

Ja, Dmitry Trofimov weiß ;

  

(...) fügen Sie Module hinzu, die nicht auf das dict DONT_TRACE in <pycharm-distr>/helpers/pydev/pydevd.py
zurückgeführt werden sollen   Das ist eine hacky Lösung (...)

Wenn Sie möchten, dass diese Funktion weniger hacky ist, können Sie darüber abstimmen, indem Sie das Problem kennen PY-9101 Implementieren " Wechseln Sie nicht in die Option "classes for Python"

Wer pdb benutzt, könnte wissen, dass es in pdb eine solche Funktion gibt;

Ab Python 3.1 hat Pdb class ein neues Argument namens skip -

class pdb.Pdb(completekey='tab', stdin=None, stdout=None, skip=None, nosigint=False)

  

Wenn das Argument skip angegeben ist, muss es sich um ein iterbares glob-style-Modul handeln   Namensmuster. Der Debugger tritt nicht in Frames ein, die ursprünglich erstellt wurden   in einem Modul, das einem dieser Muster entspricht. 1

     

1 Ob ein Frame von einem bestimmten Modul stammt, ist   bestimmt durch __name__ in den Frame-Globals.

Das Beispiel in der Dokumentation zeigt, wie man Djangos Pakete ausblendet -

import pdb; pdb.Pdb(skip=['django.*']).set_trace()

    
Piotr Dobrogost 03.03.2013 13:36
quelle
0

Alles sieht für den Debugger gleich aus, es kann nicht zwischen Ihrem Code oder Djangos Code unterscheiden - es ist alles Python. Es wird also alles laufen, aber wenn Sie verhindern wollen, dass es so tief durchdringt, müssen Sie Codezeilen überspringen, anstatt sie zu betreten.

Gemäß den PyCharm-Dokumenten möchten Sie F8 verwenden, wenn Immer sehen Sie eine Codezeile, die aussieht, als könnte sie ein Gateway zu Djangos Interna sein. Wenn du dich versehentlich in Djangos Quellcode befindest, kannst du Shift+F8 drücken, bis du nicht mehr da bist.

    
Matt 01.03.2013 20:13
quelle

Tags und Links