我正在使用Django Rest Framework 3.5.4和Pycharm Professional 2016.3.1。順便提一句,我有PyCharm配置爲在本地流浪盒內使用virtualenv。PyCharm調試器行與現實不同步
當我通過與調試器上的DRF執行代碼,我可以看到,它是通過空行步進,並在調試器中的變量不匹配的範圍(圖爲rest_framework.response.Response.rendered_content()
):
這裏是另外一個例子,說明如何在範圍內的變量在調試器不通過單變量相匹配此外,請注意斷點如何顯然是一個文檔字符串:
這不是我第一次在PyCharm中看到過;雖然查看庫源通常有效,但偶爾我會看到源緩存和正在執行的內容之間不匹配。
我的問題是:我該如何糾正這種行爲?我嘗試吹走我的virtualenv,然後重建它,並與PyCharm重新合作。我也試過File > Invalidate Caches/Restart
,在這個特殊的情況下都沒有幫助。
編輯:
我想我已經通過刪除所有的〜/圖書館/緩存/ PyCharmXX/remote_sources/*文件,遠程重新無效緩存,重啓PyCharm,並重新關聯的解決了這個問題翻譯與該項目。下次我嘗試調試同一個文件時,我得到了一個屏幕來選擇源文件。我點擊自動檢測,發現兩個版本是可用:
我做了兩個即是可用之間的差異,並沒有什麼區別。此外,字節和修改時間的數量分別爲每個文件中的相同:
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]
我任意選擇了後者之一,並且隨後,調試行號出現匹配該文件。我相信問題是PyCharm的先前版本已經將該路徑文件與緩存的舊版本的庫相關聯。我不知道爲什麼無效緩存本身不能解決問題。
不幸的是,關聯不會保留在PyCharm的調試會話之間。這意味着每個調試會話都需要重新關聯每個文件;有些東西顯然是錯的。