|
安裝和配置Visual Studio Code用于Python開發(fā)
程序員可以使用的最酷的代碼編輯器之一——Visual Studio Code[1]——是一個開源的、可擴展的、輕量級的編輯器,它可以在所有平臺上使用。正是這些特性使得Microsoft[2]的Visual Studio Code非常受歡迎,并且是一個很好的Python開發(fā)平臺。 在本文中,你將了解在Visual Studio Code中進行Python開發(fā),包括怎樣:
我們假設你熟悉Python開發(fā),并且已經在系統(tǒng)上安裝了某種形式的Python (Python 2.7、Python 3.6/3.7、Anaconda或其他)。確保你的Ubuntu和Windows的屏幕截圖和演示程序都可用。由于Visual Studio Code可以運行在所有主要平臺上,你可能會看到略有不同的UI元素,可能需要修改某些命令。 安裝并配置Visual Studio Code用于Python開發(fā) 在任何平臺上安裝Visual Studio Code都是非常容易[3]的。Windows[4]、Mac[5]和Linux[6]都有完整的安裝教程,編輯器每月更新一次,提供新特性和bug修復。你可以在Visual Studio Code網站[7]上找到所有信息: 你可能會疑惑,Visual Studio Code(簡稱VS Code)除了與其基于windows的大型同名軟件Visual Studio[8]名字相同之外,幾乎沒有其他相同之處。 Visual Studio Code除具有對多種語言的內置支持之外,還具有對其他語言豐富的生態(tài)系統(tǒng)支持的擴展模型。VS Code每月更新一次,你可以在Microsoft Python博客[9]上了解最新情況。微軟甚至公開VS Code GitHub repo[10]源來允許任何人克隆和貢獻代碼。(Cue the PR flood.) VS Code用戶界面[11]有很好的文檔說明,所以我就不在這里贅述 用于Python開發(fā)的擴展 如上所述,VS Code通過良好文檔化的擴展模型[12]支持多種編程語言的開發(fā)。Python擴展[13]允許我們可以在Visual Studio Code中進行Python開發(fā),它具有以下特性:
Visual Studio Code擴展不僅包括編程語言功能:
下面是一些我發(fā)現的有用的擴展和設置:
當然,在使用VS Code時,你會發(fā)現其他有用的擴展。請在評論區(qū)[32]分享你的發(fā)現和設置! 你可以通過單擊活動欄上的Extensions圖標來發(fā)現和安裝新的擴展和主題。你可以使用關鍵字搜索擴展,以多種方式對結果進行排序,并快速輕松地安裝擴展。對本文來說,通過在活動欄的Extensions項中輸入python并點擊Install來安裝Python擴展: 你可以以相同的方式查找并安裝上面提到的任何擴展。 Visual Studio Code配置文件 值得一提的是,Visual Studio Code可以通過user and workspace settings[33](用戶和工作區(qū)設置)進行高度配置。 用戶設置是跨所有Visual Studio Code實例的全局設置,而工作區(qū)設置是特定文件夾或項目工作區(qū)的本地設置。工作區(qū)設置為VS Code提供了極大的靈活性,在本文中我將始終調用工作區(qū)設置。工作區(qū)設置以.json文件的形式存儲在名為.vscode的項目工作區(qū)本地文件夾中。 開始一個新的Python程序 讓我們從一個新的Python程序開始探索Visual Studio Code中的Python開發(fā)。在VS Code中,按下∧Ctrl+N打開一個新文件。(也可以從菜單中選擇File, New來打開) 注意:Visual Studio Code UI提供了命令面板[34],你可以在其中搜索和執(zhí)行任何命令,而不需要離開鍵盤。使用∧Ctrl+Shift+P打開命令面板,輸入File: New File,然后按Enter鍵打開一個新文件。 無論你如何打開一個新文件的,你都會看到一個VS Code窗口,它看起來類似于下面的圖: 打開新文件之后,你就可以輸入代碼了。 輸入Python代碼 對于我們的測試代碼,讓我們快速編寫Sieve of Eratosthenes[35] 項目(它查找所有小于給定數字的素數)。在剛剛打開的新選項卡中輸入以下代碼: 等等,發(fā)生了什么?為什么Visual Studio Code沒有進行任何關鍵字高亮顯示、自動格式化或其他有用的事情呢?它做了什么? 答案是,現在VS Code還不知道它處理的是哪種文件。這個緩沖區(qū)名為Untitled-1,在窗口的右下角查看,你會看到Plain Text 字樣。 要激活Python擴展名,將文件(通過從菜單中選擇File、Save、從命令面板中輸入File: Save File,或者只使用∧Ctrl+S)保存為sieve.py。VS Code將看到.py擴展名,并正確地將文件解釋為Python代碼?,F在你的窗口看起來應該是這樣的: 這就好多了!VS Code自動將文件重新格式化為Python,你可以通過檢查左下角的語言模式來驗證這一點。 如果你安裝了多個Python版本 (如Python 2.7、Python 3或者Anaconda)。你可以通過單擊語言模式指示器或從命令面板中選擇Python: Select Interpreter,來更改VS Code默認使用哪種Python解釋器。VS Code默認支持使用pep8進行格式化[36],你也可以選擇black或yapf。 現在我們來添加Sieve代碼的其余部分。要查看IntelliSense是否在工作,直接輸入這段代碼,不能剪切和粘貼,你會看到如下所示: 下面是一個基本的Sieve of Eratosthenes的完整代碼:
當你輸入這段代碼時,VS Code會自動縮進for和if語句下面的行,添加結束括號,并為你提供建議。這就是IntelliSense為你帶來的力量。 運行Python代碼 現在代碼已經完成,你可以運行它了。不需要離開編輯器就可以做到這一點:Visual Studio Code可以直接在編輯器中運行這個程序。保存文件(使用∧Ctrl+S),然后在編輯器窗口右鍵單擊,選擇Run Python file in Terminal :
你應該會看到終端窗格出現在窗口的底部,并顯示代碼輸出。 Python Linting支持 你在輸入時可能會看到一個彈出窗口,提示無法使用linting。你可以從該彈出窗口中快速安裝linting支持,它默認為PyLint。VS Code還支持其他linter。以下是撰寫本文時可用的完整列表:
Python linting頁面[37]有關于如何設置每個linter的完整詳細信息。 注意:linter的選擇是一個項目工作區(qū)設置,不是全局用戶設置。 編輯現有Python項目 在Sieve of Eratosthenes示例中,你創(chuàng)建了一個Python文件。作為一個例子這很不錯,但是很多時候,當你需要創(chuàng)建大型項目,并在很長的一段時間內要在它上面進行開發(fā)。一個典型的新項目工作流程可能是這樣的:
在Python項目上使用Visual Studio Code (而不是單個Python文件)可以提供更多的功能,可以讓VS Code發(fā)揮它的特長。我們來看看它是如何處理一個大型項目的。 在前幾年的后期,當我還是一個很年輕的程序員時,我編寫了一個計算器程序,它使用Edsger Dijkstra的調度場算法(shunting yard algorithm)[38]適配來解析用中綴表示法編寫的等式。 為了演示Visual Studio Code以項目為中心的特性,我開始在Python中將調度場算法(shunting yard algorithm)重新創(chuàng)建為一個Python等式計算庫[39]。要繼續(xù)后續(xù)操作,請隨意將它從repo克隆到本地。 在本地創(chuàng)建文件夾后,你可以在VS Code中快速打開整個文件夾。我喜歡的方法(如上所述)修改如下,因為我已經創(chuàng)建了文件夾和基本文件:
VS Code理解并將使用以這種方式打開時它讀取到的任何virtualenv[40]、pipenv[41]或conda[42]環(huán)境。你甚至不需要一開始就啟動虛擬環(huán)境!你甚至可以從用戶界面打開文件夾,從菜單中使用 File,Open Folder 打開文件夾,或使用快捷鍵∧Ctrl+K、∧Ctrl+O從鍵盤打開文件夾,或者從命令面板使用File: Open Folder打開。 對于我的等式計算庫項目,以下是我將看到的:
當Visual Studio Code打開文件夾時,它還會打開上次打開的文件。(這是可配置的)。你可以打開、編輯、運行和調試任何列出的文件。左側活動欄中的Explorer視圖提供文件夾中所有文件的視圖,并顯示當前選項卡集中有多少未保存的文件。 測試支持 VS Code可以自動識別在unittest框架、pytest或Nose框架中編寫的現有Python測試[43](如果這些框架已經安裝在當前環(huán)境中)。我在unittest中為等式計算庫編寫了一個單元測試[44],你可以在本例中使用它。 要運行現有的單元測試,可以在項目中的任何Python文件中右鍵單擊并選擇Run Current Unit Test File。系統(tǒng)會提示你指定測試框架、在項目中搜索測試的位置以及測試使用的文件名模式。 所有這些都會作為工作區(qū)設置保存為本地.vscode/settings.json文件,你也可以在此處進行修改。對于這個等式項目,你選擇unittest、當前文件夾和*_test.py模式就好。 一旦設置好測試框架并且編輯器發(fā)現了測試,你可以在狀態(tài)欄上單擊Run Tests 并從命令面板中選擇一個選項來運行所有的測試:
你甚至可以通過在VS Code中打開測試文件,單擊狀態(tài)欄上的Run Tests,并選擇Run Unit Test Method…和要運行的特定測試來運行單個測試。這使得定位單個的測試失敗和重新運行失敗的測試變得非常簡單,也是一個很棒的節(jié)省時間的方法!測試結果顯示在Python Test Log下的Output 窗口中。 調試支持 雖然VS Code是一個代碼編輯器,但是在VS Code中直接調試Python[45]也是可以的。VS Code提供了許多你所希望的好的代碼調試器具有的特性,包括:
你可以在活動欄的Debug 視圖中看到它們:
調試器可以控制在內置終端或外部終端實例中運行Python應用程序。它也可以附加到已經運行的Python實例上,甚至可以調試Django[46]和Flask[47]應用程序。 在單個Python文件中調試代碼與使用F5啟動調試器一樣簡單。使用F10和F11可以分別跳出和進入函數,使用Shift+F5退出調試器??梢允褂肍9設置斷點,也可以使用鼠標在編輯器窗口的左側空白處單擊來設置。 在開始調試更復雜的項目(包括Django或Flask應用程序)之前,你需要先進行設置,然后選擇調試配置。設置調試配置相對簡單。在Debug 視圖中,選擇Configuration下拉菜單,然后點擊Add Configuration,并選擇Python
: Visual Studio Code將在當前文件夾下創(chuàng)建一個名為 .vscode/launch.json的調試配置文件,它允許你設置特定的Python配置[48]以及調試特定應用程序[49](如Django和Flask)的設置。 你甚至可以執(zhí)行遠程調試,以及調試Jinja和Django模板。關閉編輯器中的launch.json文件,然后從Configuration 下拉菜單中為你的應用程序選擇合適的配置。 Git集成 VS Code內置了對源代碼控制管理[50]的支持,并附帶了對Git和GitHub的開箱即用支持。你可以在VS Code中安裝對其他SCM的支持,并一起使用它們。可以從Source Control 視圖中訪問源代碼管理:
如果你的項目文件夾包含一個.git文件夾,VS Code會自動打開Git/GitHub[51]的全部功能。以下是一些你可以完成的任務:
所有這些功能都可以直接從VS Code用戶界面中調用:
VS Code還能識別在編輯器之外所做的更改,并正確處理。 在VS Code中提交你最近的更改是一個相當簡單的過程。在Source Control 視圖中,修改后的文件顯示為M標記,而未跟蹤的新文件顯示為U 標記。將鼠標懸停在文件上,然后單擊加號(+),就可以看到你的更改。在視圖頂部添加提交消息,然后單擊復選框提交更改:
你還可以在VS Code中向GitHub推送本地提交。從“Source Control 視圖”菜單中選擇“Sync(同步)”,或者單擊分支指示器旁邊的狀態(tài)欄[57]上的“Synchronize Changes (同步更改)”。 結論 Visual Studio Code是最酷的通用編輯器之一,也是Python開發(fā)的最佳候選。在本文中,你了解到:
Visual Studio Code已經成為我開發(fā)Python和處理其他任務的默認編輯器,我希望你能給它一個機會,讓它也成為你的編輯器。 如果你有任何問題或意見,請在下面的評論區(qū)留言。Visual Studio Code網站[58]上還有很多我們這里沒有介紹到的信息。 作者在此感謝微軟Visual Studio Code團隊的Dan Taylor[59]為本文所花費的時間和提供的寶貴信息。 |
|
|