在VS Code中進行Python開發

在VS Code中进行Python开发

目錄表

  • 安裝和配置Visual Studio Code用於Python開發

    o 用於Python開發的擴展

    o Visual StudioCode配置文件

  • 啟動一個新的Python程序

    o輸入Python代碼

    o運行Python代碼

    o Python Linting支持

  • 測試支持

  • 調試支持

  • git集成

  • 結論

程序員可以使用的最酷的代碼編輯器之一——Visual Studio Code[1]——是一個開源的、可擴展的、輕量級的編輯器,它可以在所有平臺上使用。正是這些特性使得Microsoft[2]的Visual Studio Code非常受歡迎,並且是一個很好的Python開發平臺。

在本文中,你將瞭解在Visual Studio Code中進行Python開發,包括怎樣:

  • 安裝Visual Studio Code

  • 發現並安裝使Python開發變得容易的擴展

  • 編寫一個簡單的Python應用程序

  • 學習如何在VS Code中運行和調試現有Python程序

  • 將Visual Studio Code連接到Git和GitHub,與世界分享你的代碼

我們假設你熟悉Python開發,並且已經在系統上安裝了某種形式的Python (Python 2.7、Python 3.6/3.7、Anaconda或其他)。確保你的Ubuntu和Windows的屏幕截圖和演示程序都可用。由於Visual Studio Code可以運行在所有主要平臺上,你可能會看到略有不同的UI元素,可能需要修改某些命令。

安裝並配置Visual Studio Code用於Python開發

在任何平臺上安裝Visual Studio Code都是非常容易[3]的。Windows[4]、Mac[5]和Linux[6]都有完整的安裝教程,編輯器每月更新一次,提供新特性和bug修復。你可以在Visual Studio Code網站[7]上找到所有信息:

在VS Code中进行Python开发

你可能會疑惑,Visual Studio Code(簡稱VS Code)除了與其基於windows的大型同名軟件Visual Studio[8]名字相同之外,幾乎沒有其他相同之處。

Visual Studio Code除具有對多種語言的內置支持之外,還具有對其他語言豐富的生態系統支持的擴展模型。VS Code每月更新一次,你可以在Microsoft Python博客[9]上了解最新情況。微軟甚至公開VS Code GitHub repo[10]源來允許任何人克隆和貢獻代碼。(Cue the PR flood.)

VS Code用戶界面[11]有很好的文檔說明,所以我就不在這裡贅述

在VS Code中进行Python开发

用於Python開發的擴展

如上所述,VS Code通過良好文檔化的擴展模型[12]支持多種編程語言的開發。Python擴展[13]允許我們可以在Visual Studio Code中進行Python開發,它具有以下特性:

  • 支持Python 3.4及以上版本,以及Python 2.7

  • 使用IntelliSense[14](智能感知)補全代碼

  • Linting(代碼檢查)[15]

  • 調試支持[16]

  • 代碼片段[17]

  • 單元測試支持[18]

  • conda和虛擬環境[19]的自動使用

  • 在Jupyter環境[20]和Jupyter筆記本[21]中進行代碼編輯

在VS Code中进行Python开发

Visual Studio Code擴展不僅包括編程語言功能:

  • Keymaps[22]讓已經熟悉Atom、Sublime Text[23]、Emacs[24]、Vim[25]、PyCharm或其他環境的用戶感到賓至如歸。

  • Themes[26]允許自定義UI,無論你喜歡在淺色、深色或其他更豐富多彩的環境中編寫代碼。

  • Language packs[27]提供本地化體驗。

下面是一些我發現的有用的擴展和設置:

  • GitLens[28]在你的編輯窗口中提供了大量有用的Git特性,包括blame annotations 和repository exploration特性。

  • 自動保存是很容易開啟的,你可以從菜單選擇File,Auto Save來開啟。默認延遲時間是1000毫秒,這也是可配置[29]的。

  • Settings Sync[30] 允許你使用GitHub同步不同安裝環境的VS Code設置。如果你在不同的機器上工作,這有助於保持跨機器環境的一致性。

  • Docker[31]讓你可以快速、輕鬆地使用Docker進行工作(它幫助作者生成了Dockerfile和Docker –compose.yml文件),打包和部署項目,甚至為你的項目生成合適的Docker文件。

當然,在使用VS Code時,你會發現其他有用的擴展。請在評論區[32]分享你的發現和設置!

你可以通過單擊活動欄上的Extensions圖標來發現和安裝新的擴展和主題。你可以使用關鍵字搜索擴展,以多種方式對結果進行排序,並快速輕鬆地安裝擴展。對本文來說,通過在活動欄的Extensions項中輸入python並點擊Install來安裝Python擴展:

在VS Code中进行Python开发

你可以以相同的方式查找並安裝上面提到的任何擴展。

Visual Studio Code配置文件

值得一提的是,Visual Studio Code可以通過user and workspace settings[33](用戶和工作區設置)進行高度配置。

用戶設置是跨所有Visual Studio Code實例的全局設置,而工作區設置是特定文件夾或項目工作區的本地設置。工作區設置為VS Code提供了極大的靈活性,在本文中我將始終調用工作區設置。工作區設置以.json文件的形式存儲在名為.vscode的項目工作區本地文件夾中。

開始一個新的Python程序

讓我們從一個新的Python程序開始探索Visual Studio Code中的Python開發。在VS Code中,按下∧Ctrl+N打開一個新文件。(也可以從菜單中選擇File, New來打開)

注意:Visual Studio Code UI提供了命令面板[34],你可以在其中搜索和執行任何命令,而不需要離開鍵盤。使用∧Ctrl+Shift+P打開命令面板,輸入File: New File,然後按Enter鍵打開一個新文件。

無論你如何打開一個新文件的,你都會看到一個VS Code窗口,它看起來類似於下面的圖:

在VS Code中进行Python开发

打開新文件之後,你就可以輸入代碼了。

輸入Python代碼

對於我們的測試代碼,讓我們快速編寫Sieve of Eratosthenes[35] 項目(它查找所有小於給定數字的素數)。在剛剛打開的新選項卡中輸入以下代碼:

在VS Code中进行Python开发

你會看到類似於這樣的結果:

在VS Code中进行Python开发

等等,發生了什麼?為什麼Visual Studio Code沒有進行任何關鍵字高亮顯示、自動格式化或其他有用的事情呢?它做了什麼?

答案是,現在VS Code還不知道它處理的是哪種文件。這個緩衝區名為Untitled-1,在窗口的右下角查看,你會看到Plain Text 字樣。

要激活Python擴展名,將文件(通過從菜單中選擇File、Save、從命令面板中輸入

File: Save File,或者只使用∧Ctrl+S)保存為sieve.py。VS Code將看到.py擴展名,並正確地將文件解釋為Python代碼。現在你的窗口看起來應該是這樣的:

在VS Code中进行Python开发

這就好多了!VS Code自動將文件重新格式化為Python,你可以通過檢查左下角的語言模式來驗證這一點。

如果你安裝了多個Python版本 (如Python 2.7、Python 3或者Anaconda)。你可以通過單擊語言模式指示器或從命令面板中選擇Python: Select Interpreter,來更改VS Code默認使用哪種Python解釋器。VS Code默認支持使用pep8進行格式化[36],你也可以選擇black或yapf。

在VS Code中进行Python开发

現在我們來添加Sieve代碼的其餘部分。要查看IntelliSense是否在工作,直接輸入這段代碼,不能剪切和粘貼,你會看到如下所示:

在VS Code中进行Python开发

下面是一個基本的Sieve of Eratosthenes的完整代碼:

在VS Code中进行Python开发

當你輸入這段代碼時,VS Code會自動縮進for和if語句下面的行,添加結束括號,併為你提供建議。這就是IntelliSense為你帶來的力量。

運行Python代碼

現在代碼已經完成,你可以運行它了。不需要離開編輯器就可以做到這一點:Visual Studio Code可以直接在編輯器中運行這個程序。保存文件(使用∧Ctrl+S),然後在編輯器窗口右鍵單擊,選擇Run Python file in Terminal :

在VS Code中进行Python开发

你應該會看到終端窗格出現在窗口的底部,並顯示代碼輸出。

Python Linting支持

你在輸入時可能會看到一個彈出窗口,提示無法使用linting。你可以從該彈出窗口中快速安裝linting支持,它默認為PyLint。VS Code還支持其他linter。以下是撰寫本文時可用的完整列表:

  • pylint

  • flake8

  • mypy

  • pydocstyle

  • pep8

  • prospector

  • pyllama

  • bandit

Python linting頁面[37]有關於如何設置每個linter的完整詳細信息。

注意:linter的選擇是一個項目工作區設置,不是全局用戶設置。

在Sieve of Eratosthenes示例中,你創建了一個Python文件。作為一個例子這很不錯,但是很多時候,當你需要創建大型項目,並在很長的一段時間內要在它上面進行開發。一個典型的新項目工作流程可能是這樣的:

  • 創建一個文件夾來保存項目(其中可能包括一個新的GitHub項目)

  • 切換到新文件夾

  • 使用命令code file .py創建初始Python代碼

在Python項目上使用Visual Studio Code (而不是單個Python文件)可以提供更多的功能,可以讓VS Code發揮它的特長。我們來看看它是如何處理一個大型項目的。

在前幾年的後期,當我還是一個很年輕的程序員時,我編寫了一個計算器程序,它使用Edsger Dijkstra的調度場算法(shunting yard algorithm)[38]適配來解析用中綴表示法編寫的等式。

為了演示Visual Studio Code以項目為中心的特性,我開始在Python中將調度場算法(shunting yard algorithm)重新創建為一個Python等式計算庫[39]。要繼續後續操作,請隨意將它從repo克隆到本地。

在本地創建文件夾後,你可以在VS Code中快速打開整個文件夾。我喜歡的方法(如上所述)修改如下,因為我已經創建了文件夾和基本文件:

在VS Code中进行Python开发

VS Code理解並將使用以這種方式打開時它讀取到的任何virtualenv[40]、pipenv[41]或conda[42]環境。你甚至不需要一開始就啟動虛擬環境!你甚至可以從用戶界面打開文件夾,從菜單中使用

File,Open Folder 打開文件夾,或使用快捷鍵∧Ctrl+K、∧Ctrl+O從鍵盤打開文件夾,或者從命令面板使用File: Open Folder打開。

對於我的等式計算庫項目,以下是我將看到的:

在VS Code中进行Python开发

當Visual Studio Code打開文件夾時,它還會打開上次打開的文件。(這是可配置的)。你可以打開、編輯、運行和調試任何列出的文件。左側活動欄中的Explorer視圖提供文件夾中所有文件的視圖,並顯示當前選項卡集中有多少未保存的文件。

測試支持

VS Code可以自動識別在unittest框架、pytest或Nose框架中編寫的現有Python測試[43](如果這些框架已經安裝在當前環境中)。我在unittest中為等式計算庫編寫了一個單元測試[44],你可以在本例中使用它。

要運行現有的單元測試,可以在項目中的任何Python文件中右鍵單擊並選擇Run Current Unit Test File。系統會提示你指定測試框架、在項目中搜索測試的位置以及測試使用的文件名模式。

所有這些都會作為工作區設置保存為本地.vscode/settings.json文件,你也可以在此處進行修改。對於這個等式項目,你選擇unittest、當前文件夾和*_test.py模式就好。

一旦設置好測試框架並且編輯器發現了測試,你可以在狀態欄上單擊Run Tests 並從命令面板中選擇一個選項來運行所有的測試:

在VS Code中进行Python开发

你甚至可以通過在VS Code中打開測試文件,單擊狀態欄上的Run Tests,並選擇Run Unit Test Method…和要運行的特定測試來運行單個測試。這使得定位單個的測試失敗和重新運行失敗的測試變得非常簡單,也是一個很棒的節省時間的方法!測試結果顯示在Python Test Log下的Output 窗口中。

調試支持

雖然VS Code是一個代碼編輯器,但是在VS Code中直接調試Python[45]也是可以的。VS Code提供了許多你所希望的好的代碼調試器具有的特性,包括:

  • 自動變量跟蹤

  • 監視表達式

  • 斷點

  • 調用棧檢查

你可以在活動欄的Debug 視圖中看到它們:

在VS Code中进行Python开发

調試器可以控制在內置終端或外部終端實例中運行Python應用程序。它也可以附加到已經運行的Python實例上,甚至可以調試Django[46]和Flask[47]應用程序。

在單個Python文件中調試代碼與使用F5啟動調試器一樣簡單。使用F10和F11可以分別跳出和進入函數,使用Shift+F5退出調試器。可以使用F9設置斷點,也可以使用鼠標在編輯器窗口的左側空白處單擊來設置。

在開始調試更復雜的項目(包括Django或Flask應用程序)之前,你需要先進行設置,然後選擇調試配置。設置調試配置相對簡單。在Debug 視圖中,選擇Configuration下拉菜單,然後點擊Add Configuration,並選擇Python

在VS Code中进行Python开发

:

Visual Studio Code將在當前文件夾下創建一個名為 .vscode/launch.json的調試配置文件,它允許你設置特定的Python配置[48]以及調試特定應用程序[49](如Django和Flask)的設置。

你甚至可以執行遠程調試,以及調試Jinja和Django模板。關閉編輯器中的launch.json文件,然後從Configuration 下拉菜單中為你的應用程序選擇合適的配置。

Git集成

VS Code內置了對源代碼控制管理[50]的支持,並附帶了對Git和GitHub的開箱即用支持。你可以在VS Code中安裝對其他SCM的支持,並一起使用它們。可以從Source Control 視圖中訪問源代碼管理:

在VS Code中进行Python开发

如果你的項目文件夾包含一個.git文件夾,VS Code會自動打開Git/GitHub[51]的全部功能。以下是一些你可以完成的任務:

  • 將文件提交[52]到Git

  • 從遠程repos[53]推送更改和提取更改

  • 檢查現有的或創建新的分支和標記[54]

  • 查看並解決合併衝突[55]

  • 查看不同[56]

所有這些功能都可以直接從VS Code用戶界面中調用:

在VS Code中进行Python开发

VS Code還能識別在編輯器之外所做的更改,並正確處理。

在VS Code中提交你最近的更改是一個相當簡單的過程。在Source Control 視圖中,修改後的文件顯示為M標記,而未跟蹤的新文件顯示為U 標記。將鼠標懸停在文件上,然後單擊加號(+),就可以看到你的更改。在視圖頂部添加提交消息,然後單擊複選框提交更改:

在VS Code中进行Python开发

你還可以在VS Code中向GitHub推送本地提交。從“

Source Control 視圖”菜單中選擇“Sync(同步)”,或者單擊分支指示器旁邊的狀態欄[57]上的“Synchronize Changes (同步更改)”。

結論

Visual Studio Code是最酷的通用編輯器之一,也是Python開發的最佳候選。在本文中,你瞭解到:

  • 如何在任何平臺上安裝VS Code

  • 如何查找和安裝擴展來支持Python特有的特性

  • VS Code如何讓編寫一個簡單的Python應用程序變得更容易

  • 如何在VS Code中運行和調試現有Python程序

  • 如何在VS Code中使用Git和GitHub存儲庫

Visual Studio Code已經成為我開發Python和處理其他任務的默認編輯器,我希望你能給它一個機會,讓它也成為你的編輯器。

如果你有任何問題或意見,請在下面的評論區留言。Visual Studio Code網站[58]上還有很多我們這裡沒有介紹到的信息。

作者在此感謝微軟Visual Studio Code團隊的Dan Taylor[59]為本文所花費的時間和提供的寶貴信息。

相關鏈接:

[1]——https://code.visualstudio.com/docs

[2]——https://azure.com/python

[3]——https://code.visualstudio.com/docs/setup/setup-overview

[4]——https://code.visualstudio.com/docs/setup/windows

[5]——https://code.visualstudio.com/docs/setup/mac

[6]——https://code.visualstudio.com/docs/setup/linux

(字數限制,其他鏈接未列出........)

英文原文:https://realpython.com/python-development-visual-studio-code/
譯者:憂鬱的紅秋褲


分享到:


相關文章: