2017-03-07 6 views
2

Ich benutze Django Rest Framework 3.5.4 und Pycharm Professional 2016.3.1. Übrigens habe ich PyCharm so konfiguriert, dass ein virtualenv in einer lokalen Vagrant-Box verwendet wird.PyCharm Debugger-Linien sind nicht mehr synchron mit der Realität

Wenn ich durch den DRF-Code mit dem Debugger Schritt auf, ich kann sehen, dass es durch Leerzeilen verstärkt, und die Variablen im Debugger nicht mit denen im Rahmen passen (hier im Bild ist rest_framework.response.Response.rendered_content()):

breakpoint on blank line

Hier ist ein weiteres Beispiel, das zeigt, wie Variablen im Umfang im Debugger kann die einzige Variable nicht überein gebenen beachten Sie auch, wie der Haltepunkt eindeutig auf einem docstring ist.

enter image description here

Dies ist nicht das erste Mal, dass ich das in PyCharm gesehen habe; Während das Betrachten der Bibliotheksquelle normalerweise funktioniert, sehe ich gelegentlich eine Diskrepanz zwischen den Quellcaches und dem, was gerade ausgeführt wird.

Meine Frage ist: Wie kann ich dieses Verhalten korrigieren? Ich habe versucht, mein virtualenv wegzublasen und es dann wieder aufzubauen und es mit PyCharm zu verbinden. Ich habe auch versucht File > Invalidate Caches/Restart und in diesem speziellen Fall haben beide nicht geholfen.

EDIT:

Ich dachte, ich dieses Problem gelöst war von allen der ~/Library/Caches/PyCharmXX/remote_sources/* Dateien, erneut ungültig zu machen, die Caches, einen Neustart PyCharm und erneut Zuordnen der Fernbedienung zu entfernen Dolmetscher mit dem Projekt. Als ich das nächste Mal versuchte, die gleiche Datei zu debuggen, erhielt ich einen Bildschirm, um die Quellen auszuwählen. Ich klickte automatische Erkennung und bemerkte, dass zwei Versionen zur Verfügung standen:

select local file for the file from remote host

ich ein Diff zwischen den beiden hat, die verfügbar waren, und es gab keinen Unterschied. Außerdem war die Anzahl von Bytes und den Änderungszeiten der gleiche in jeder Datei:

pnore at pnore-mbp in ~/Library/Caches 
$ ls -l PyCharm2016.3/remote_sources/974253138/308149114/rest_framework/serializers.py 
-rw-r--r-- 1 pnore HBS\Domain Users 60495 Mar 7 16:56 PyCharm2016.3/remote_sources/974253138/308149114/rest_framework/serializers.py 

pnore at pnore-mbp in ~/Library/Caches 
$ ls -l PyCharm2016.3/remote_sources/974253138/-328085538/rest_framework/serializers.py 
-rw-r--r-- 1 pnore HBS\Domain Users 60495 Mar 7 16:56 PyCharm2016.3/remote_sources/974253138/-328085538/rest_framework/serializers.py 

pnore at pnore-mbp in ~/Library/Caches 
$ diff PyCharm2016.3/remote_sources/974253138/308149114/rest_framework/serializers.py PyCharm2016.3/remote_sources/974253138/-328085538/rest_framework/serializers.py 
[no output] 

wählte ich willkürlich die letztere, und anschließend, Debugging Zeilennummern erschienen für diese Datei übereinstimmen. Ich glaube, das Problem war, dass eine frühere Version von PyCharm diese Pfaddatei mit einer zwischengespeicherten alten Version der Bibliothek verknüpft hatte. Ich weiß nicht, warum die Ungültigmachung von Caches allein das Problem nicht gelöst hat.

Leider bleibt die Assoziation nicht in PyCharm über Debugging-Sitzungen. Dies bedeutet, dass jede Datei für jede Debugsitzung neu zugeordnet werden muss. etwas ist eindeutig falsch.

Antwort

0

Ich hatte ein ähnliches Problem, zwei Dateien mit dem gleichen Pfad und der Debugger verwendet die falsche, obwohl in meinem Fall die Dateien geringfügig abweichen.

Das Update war wie unter Windows mit PyCharm folgt 2017.02.03:

  1. Ausfahrt PyCharm.
  2. Entfernen Sie Ordner von früheren Versionen von PyCharm. In meinem Fall gab es sowohl .PyCharm2017.2 als auch .PyCharm2017.1 Ordner.
  3. PyCharm neu starten.
  4. Debuggen Sie erneut, wählen Sie automatisch erkennen, wenn Sie aufgefordert werden, die richtige Quelle auszuwählen.
Verwandte Themen