轉載於https://blog.csdn.net/u013088062/article/details/50214459
1、準備工作
(1)Pycharm版本爲3.0或者更高版本
(2)至少安裝了一個Python解釋器並且已經正確配置
(3)已經創建了一個Python工程
2、主要內容
介紹如何通過Pycharm來調試腳本文件,以及各個工具按鈕的作用等等,至於Python編程方法,請參見Python documentation。
3、待複習知識
爲了完成本篇教程的內容,需要用到前面的兩個重要知識點:
(1)Run/debug配置文件的相關知識
(2)斷點的相關知識
4、Run/debug 配置知識
每當你通過Pycharm來運行或者調試一個腳本文件時,都需要一個特殊的文件來記錄腳本的名稱、工作目錄以及其他的重要調試信息。Pycharm已經針對特定模式預先創建好了配置文件,避免我們手動去創建。
每次你單擊運行或者調試按鈕時(或者通過快捷菜單執行相同的操作),我們實際上都是在當前工作模式中加載了對應的配置文件。詳見product documentation。
5、斷點
一個斷點標記了一個代碼行,當Pycharm運行到該行代碼時會將程序暫時掛起。Pycharm提供了幾種形式的斷點 types of breakpoints,其圖標 icon各不相同。詳見 product documentation中的Breakpoints tutorial。
6、實例
在你的Python工程中,創建一個新的Python文件,命名爲ThreadSample.py,然後輸入以下代碼:
7、設置斷點
首先,在源碼中設置斷點。通過單擊代碼左側的空白槽來在對應位置生成斷點:
8、開始調試
選擇 run/debug configuration "ThreadSample",然後按下Shift+F9(或者單擊工具欄中的綠色蜘蛛形式的按鈕),調試開始,並在第一個斷點處停止:
斷點所在的行變爲藍色,說明Pycharm已經擊中了這個斷點,但尚未執行這行代碼。
9、更改調試窗口的佈局
此時Pycharm進入調試界面模式Debug tool window,各個控件的具體功能詳見know how to use this tool window。
加入你並不喜歡當前的默認佈局,例如你希望將調試器輸出窗口作爲一個獨立的窗口顯示以便更方便的觀察當前的調試狀態,你可以對佈局進行個性化定製。
首先,我們先把調試工具窗口獨立出來,只需要右擊窗口的標題欄,然後選擇Floating mode:
接下來將控制檯窗口移動成爲一個獨立的窗口,只需要拖動控制檯窗口將其拖出測試窗口即可:
可以通過單擊工具欄上的按鈕來恢復到默認佈局。
更多信息請參見PyCharm Tool Windows和Moving tabs and area
10、添加一個變量查看器
接下來我們介紹如何在調試過程中觀察變量的狀態。我們需要對其設置一個查看器。在Watches窗口中,單擊綠色的加號,輸入期望查看的變量名稱,例如這裏輸入delay,然後回車。當然你也可以採用另外一種方式:在編輯窗口中右擊變量名,在快捷菜單中選擇Add to watches:
此時觀察Watches窗口,發現delay變量目前尚未定義:
稍後你將會看到如何對這個變量進行負值,以及其在watches窗口中的變化。接下來我們爲get_thread_name()函數設置一個查看器作爲練習。
11、瀏覽幀
此時你能看到一個名爲MainThread的進程,其中包含三幀。單擊每一幀來顯示其變量狀態以及相對應的py文件,同時會對有問題的代碼行以高亮顯示:
12、簡單的調試
在每個斷點出都單擊按鈕來時程序繼續運行,觀察控制檯的腳本輸出:
13、步進式腳本調試
讓我們對當前腳本進行進一步的調試。單擊重啓調試進程,程序再次運行到第一個斷點處並暫停。
在調試窗口的頂端,你會看到一列包含步進調試按鈕的工具欄 stepping buttons。
單擊,或者按下F8,你會發現藍色標記移動到了下一行:
與此同時,當你暫停了腳本執行時(單擊按鈕),你能看到高亮表示的函數print_time(),你可以選擇其中的任何一個進程,並觀察變量的變化:
14、運行到當前光標處
假如你不想加入斷點,但仍希望代碼能夠調試運行到某一指定的代碼行,如何操作?
返回調試界面的第二個斷點處,在對應行插入輸入光標。
單擊按鈕,或者按下Alt+F9快捷鍵,該行代碼變爲高亮顯示:
15、如何調用Debug命令
值得一提的是所有的調試操作不僅僅可以通過調試工具欄的對應按鈕來完成,還可以通過主菜單中Run菜單下的命令來實現,以及相關的快捷菜單項。下面給出一些常用的調試菜單命令及其對應的快捷鍵列表:
更多控件描述參見Debug tool window。