Pycharm學習教程(3) 代碼運行調試,pycharm教程
Pycharm代碼運行調試,具體內容如下
1、準備工作
(1)Python版本為2.7或者更高版本
(2)已經建立了一個Python工程並且添加了內容,具體參考: Getting Started tutorial
2、第一步——運行代碼
開啟之前編寫的Solver.py檔案,在編輯框中右鍵,選擇捷徑功能表中的“Run 'Solver'”選項。
此時指令檔正常運行並在調試工具視窗中顯示程式的輸出值:
接下來我們對這兩步操作的具體內容做詳細的解釋。
3、什麼是Run/Debug模式
每個需要運行/調試的指令檔都需要一個特殊的設定檔來指定其指令碼名稱、所在目錄以及其他重要的運行調試資訊。Pycharm已經整合了這種設定檔,避免使用者手動去建立。
每次當你單擊Run或者Debug按鈕時(或者在捷徑功能表中執行相同操作),實際上都是將當前的運行/調試設定檔載入到當前的調試模型中。
如果你仔細觀察第一張圖片就會發現,在組合框中根本就沒有 run/debug的相關資訊,知道第二張圖片中它們才出現。這就意味著當執行運行/調試命令的時候,Solver指令碼的run/debug設定檔才會自動產生,正如現在所顯示的這樣。
此時再主工具列中Run(綠色箭頭按鈕)和Debug(綠色甲殼蟲按鈕)兩個按鈕變得可用:
同時這兩個表徵圖還是半透明,也就意味著他們臨時的,即由Pycharm自動建立的。
OK,單擊下拉式箭頭查看當前的可用命令操作:
如果你已經設定了多個run/debug配置方案,它們將都會顯示在這裡下拉式清單中,單擊選中一個作為當前工程的run/debug設定檔。
4、儲存run/debug配置資訊
在的下拉式清單中,單擊Edit configuration選項,開啟run/debug配置編輯視窗:
在左側目錄中將會出現兩個節點:Python和Default。在第一個節點目錄下有一個單一的配置選項'Solver',在第二個選項下則有很多配置資訊。
這意味著什麼呢?
在Default節點下,你只能看到架構的名稱或者模式名稱,如果你建立一個新的Run/Debug設定檔,它將會在所選中的模式分支下進行建立,如果你更改了Default節點下的設定,相應的與其相關的所有設定檔都會更改。
例如,你想將Pycharm中所用到的Python解譯器替換成遠程或者本地解譯器,就可以通過更改Python頁面下的解譯器設定,這樣所有建立的調試設定檔都會使用這個新的解譯器。
早Python節點下,只用單一的配置選項'Solver',它屬於Python類型的配置,但與Default節點下的Python機制並不相同,它使用一個非透明的表徵圖進行的表示,這是用來指示當前設定檔的儲存狀態的,當你儲存設定檔之後表徵圖即變為非透明狀態。例如,我們在Python類型下為當前的Solver指令碼建立一個設定檔,取名'Solver1'。
如果你對已存在的設定檔做了任何更改,這些更改只會應用於對應的指令碼地區。
5、正式運行
我們已經能夠通過一種非常直接的方式,接下來我們尋求其他方法來運行指令碼。
正如我們所知,運行指令碼意味著載入當前的調試設定檔,因此,運行指令碼主要遵循以下流程:
(1)在主工具列中,單擊run/debug組框,確認當前的調試設定檔資訊
(2)做下面的工作(三選一即可):
單擊運行按鈕,載入設定檔
按下Shift+F10快速鍵
在主菜單上,選擇Run → Run
此時,我們可以在Run tool window.視窗中觀察程式的運行結果。
6、運行測試程式
我們這裡並不討論代碼測試的重要性,而是探討Pycharm如何協助我們完成這一功能。
7、選擇一個測試器
首先,需要指定一個測試器。單擊工具列的設定按鈕,開啟Settings/Preferences對話方塊,然後單擊進入Python Intergated Tools頁面(可以通過搜尋功能找到),預設選擇如下:
在這裡我們選擇Nosetests,儲存並關閉對話方塊。
8、建立一個test程式塊
首先我們建立一個test執行個體。Pycharm提供了一種非常智能的建立測試代碼的方法:單擊選中類名然後按下Ctrl+Shift+T快速鍵,或者在主菜單中選擇Navigate → Test,如果test程式已存在,則會直接跳轉到對應代碼,否則建立它:
按照系統提示進行操作,Pycharm會顯示如下對話方塊:
單擊OK按鈕,查看建立結果:
此時Pycharm已經自動建立了一個測試類別,當然這隻是一個類架構,需要我們手動編寫測試函數。
9、運行測試代碼
一切就緒後,右擊測試類別名,在彈出的捷徑功能表中選擇運行命令:
觀察運行狀態列中 Test Runner tab的輸出結果:
10、調試運行
首先要弄清楚,為什麼要進行調試?假設我們的程式在運行過程中命中了一個錯誤,那我們如何定位錯誤發生的位置?這就需要進行調試。
在Pycharm中我們可以在其中直接對程式進行調試,唯一需要做的準備工作就是在程式必要的地方加設斷點,接下來我們進行詳細的介紹:
11、什麼是斷點?
一個breakpoint標記了一個行的位置,當程式運行到該行代碼的時候,Pycharm會將程式暫時掛起以方便我們對程式的運行狀態進行分析。Pycharm支援若干中類型的斷點 types of breakpoints,可以通過對應表徵圖進行分辨。
這裡我們採用Python的行斷點為例進行介紹
12、設定斷點
方法非常簡單,單擊代碼左側的空白灰色槽即可:
注意斷點會將對應的程式碼標記為紅色,這種顏色標記目前還不能被使用者所更改,我們會儘快出台解決方案。
順便說一句,取消斷點的操作也很簡單,在同樣位置再次單擊即可。
當你將滑鼠指標懸停在斷點上方時,Pycharm會顯示斷點的關鍵資訊,行號以及指令碼屬性,如果你希望更改該斷點的屬性,右擊斷點:
可以嘗試對斷點屬性進行個人化更改,然後觀察表徵圖的變化。
13、代碼調試
接下來,我們正式開始對代碼進行調試。
首先從設定檔群組框中選擇同名的'Solver'檔案作為當前調試的設定檔,然後單擊調試按鈕(綠色甲殼蟲樣式的按鈕):
接下來會Pycharm會執行以下操作:
(1)PyCharm開始運行,並在斷點處暫停
(2)斷點所在程式碼變藍,意味著Pycharm程式進程已經到達斷點處,但尚未執行斷點所標記的代碼。
(3)Debug tool window視窗出現,顯示當前重要調試資訊,並允許使用者對調試進程變更。
雖然Pycharm使用手冊中已經完整提供了調試視窗中所有控制項的功能資訊,我們這裡仍然對其進行簡要介紹。我們發現視窗分為兩個選項卡:Debugger tab and the Console tab。
(1)Debugger視窗分為三個可見地區:Frames, Variables, 和 Watches。這些視窗列出了當前的架構、啟動並執行進程,方便使用者查看程式空間中變數的狀態等。當你選擇一個架構,就會顯示出相關的變數資訊,當然這些地區都是可以摺疊隱藏的。
(2)Console視窗顯示當前的控制台輸出資訊,預設這個視窗位於Debugger之下,可以通過單擊其標籤將其前置顯示。
當然我們可以改變這些視窗的擺放位置,如果你不喜歡程式的預設排版的話。具體參加Moving tabs and areas章節。
Debugger視窗的工作模式:
OK,現在程式暫停在了第一斷點處,Frames視窗顯示的是Solver指令碼的第7行代碼所對應的進程demo,相關變數a、b、c已經定義,但變數d尚未進行定義。接下來?
按下F9(或者左側工具列的綠色箭頭),程式會繼續運行到下一斷點處,通過這種方式你可以將每個斷點都運行一遍,觀察變數的變化。
更多有關 Debugger視窗的資訊參見軟體手冊:product documentation
Console視窗的工作模式:
為什麼需要用到Console視窗呢?當我們需要查看程式給出的錯誤資訊,或者進行一些額外的臨時運算時,就需要在這個視窗裡面進行。
單擊Console選項卡使其前置:
然後單擊左側工具列中的命令符按鈕,顯示Python的命令提示字元:
此時啟用了控制台機制,嘗試在其中執行一些Python命令:
注意到控制台視窗提供了代碼的拼字提示(Ctrl+Space)以及曆史記憶(Up/Down keys)功能,更多資訊參見: Using Debug Console
最後,如果你希望Console視窗一直處於可用狀態,只需將其移動成為一個單獨的視窗即可:
14、再次運行
在完成了本次調試運行並再次載入調試設定檔之後,我們可以再次運行調試,單擊工具列的run按鈕即可。
15、REPL——在控制台介面偵錯工具
最後,如果你更習慣工作於控制台環境下,也可以將Pycharm設定成為控制台模式。在主菜單中選擇Tools → Run Python Console...來載入控制台:
此時console視窗將會被啟用,並顯示為一個單獨的視窗:
在這個控制台視窗中我們可以做很多有意思的事情,接下來我們示範如何將最近編寫的Solver.py檔案中的代碼匯入到控制台:
開啟Solver.py檔案(開啟的方法多種多樣,例如Ctrl+E - View → Recent Files),全選檔案中的代碼內容(Ctrl+A, or Edit → Select All),然後按下Alt+Shift+E(或者右擊在彈出的捷徑功能表中選擇Execute Selection in Console):
此時,Pycharm就會自動將選中的代碼匯入到控制台介面,方便我們對其進行編輯:
以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援幫客之家。