Visual Studio Code是程序員可用的最酷的代碼編輯器之一,是一個可在所有平臺上使用的開源,可擴展,輕量級編輯器。正是這些品質使微軟的 Visual Studio Code 非常受歡迎,併成為Python開發的絕佳平臺。
在本文中,您將學習Visual Studio Code中的Python開發,包括如何:
- 安裝Visual Studio代碼
- 發現並安裝使Python開發變得簡單的擴展
- 編寫一個簡單的Python應用程序
- 瞭解如何在VS Code中運行和調試現有的Python程序
- 將Visual Studio代碼連接到Git和GitHub以與全世界共享您的代碼
我們假設您熟悉Python開發,並且已經在您的系統上安裝了某種形式的Python(Python 2.7,Python 3.6 / 3.7,Anaconda或其他)。提供了Ubuntu和Windows的屏幕截圖和演示。由於Visual Studio Code在所有主要平臺上運行,因此您可能會看到稍微不同的UI元素,並且可能需要修改某些命令。
免費獎勵: 關於Python掌握的5個想法,Python開發人員的免費課程,向您展示將Python技能提升到新水平所需的路線圖和思維模式。
為Python開發安裝和配置Visual Studio代碼
在任何平臺上都可以安裝Visual Studio代碼。可以獲得Windows,Mac和Linux的完整說明,並且每月更新編輯器,其中包含新功能和錯誤修復。您可以在Visual Studio Code網站上找到所有內容:
如果您想知道,Visual Studio Code(或簡稱VS代碼)幾乎沒有其他名稱與其基於Windows的較大的同名Visual Studio共享。
Visual Studio Code內置了對多種語言的支持,以及具有豐富生態系統支持的擴展模型。VS Code每月更新一次,您可以在Microsoft Python博客上了解最新信息。微軟甚至可以讓任何人克隆和貢獻VS Code GitHub倉庫。(提示公關洪水。)
該VS代碼UI是有據可查的,所以我不會在這裡老調重彈吧:
Python開發的擴展
如上所述,VS Code通過詳細記錄的擴展模型支持多種編程語言的開發。在Python擴展使Python開發在Visual Studio代碼,具有以下特點:
- 支持Python 3.4及更高版本,以及Python 2.7
- 使用IntelliSense完成代碼
- 掉毛
- 調試支持
- 代碼片段
- 單元測試支持
- 自動使用conda和虛擬環境
- Jupyter環境和Jupyter筆記本中的代碼編輯
Visual Studio代碼擴展不僅涵蓋編程語言功能:
- Keymaps允許已熟悉Atom,Sublime Text,Emacs,Vim,PyCharm或其他環境的用戶感到賓至如歸。
- 主題是自定義UI,無論您喜歡在明亮,黑暗或更豐富多彩的地方進行編碼。
- 語言包提供本地化體驗。
以下是我認為有用的一些其他擴展和設置:
- GitLens直接在您的編輯窗口中提供了大量有用的Git功能,包括責備註釋和存儲庫探索功能。
- 通過
- File, Auto Save
- 從菜單中選擇,可以輕鬆打開自動保存。默認延遲時間為1000毫秒,也是可配置的。
- Settings Sync允許您使用GitHub在不同的安裝中同步VS Code設置。如果您在不同的計算機上工作,這有助於保持您的環境一致。
- 泊塢窗可以讓你快速,方便地與碼頭工人工作,幫助作者Dockerfile和docker-compose.yml,打包和部署您的項目,甚至產生適當的泊塢文件為您的項目。
當然,在使用VS Code時,您可能會發現其他有用的擴展。請在評論中分享您的發現和設置!
單擊活動欄上的“ 擴展”圖標可以訪問發現和安裝新擴展和主題。您可以使用關鍵字搜索擴展程序,以多種方式對結果進行排序,以及快速輕鬆地安裝擴展程序。對於本文,通過python在活動欄上鍵入Extensions項並單擊Install來安裝 Python擴展:
您可以以相同的方式查找和安裝上述任何擴展。
Visual Studio代碼配置文件
值得一提的是,Visual Studio Code可通過用戶和工作區設置進行高度配置。
用戶設置在所有Visual Studio代碼實例中是全局的,而工作空間設置是特定文件夾或項目工作空間的本地設置。工作區設置為VS Code提供了很大的靈活性,我在整篇文章中都提到了工作區設置。工作區設置作為.json文件存儲在調用的項目工作區本地的文件夾中.vscode。
啟動一個新的Python程序
讓我們開始使用新的Python程序探索Visual Studio Code中的Python開發。在VS Code中,鍵入+以打開新文件。(您也可以從菜單中選擇“ 文件”,“新建 ”。)
注意: Visual Studio代碼UI提供命令選項板,您無需離開鍵盤即可從中搜索和執行任何命令。使用+ +打開命令調色板,鍵入File: New File,然後單擊以打開新文件。
無論你如何到達那裡,你都應該看到一個類似於以下內容的VS Code窗口:
打開新文件後,您可以輸入代碼。
輸入Python代碼
對於我們的測試代碼,讓我們快速編寫Eratosthenes篩選器(它可以找到小於給定數量的所有質數)。開始在剛剛打開的新選項卡中鍵入以下代碼:
sieve = [True] * 101
for i in range(2, 100):
你應該看到類似的東西:
等等,發生了什麼事?為什麼Visual Studio Code不進行任何關鍵字突出顯示,任何自動格式化或任何真正有用的東西?是什麼賦予了?
答案是,現在,VS Code不知道它正在處理什麼類型的文件。調用緩衝區Untitled-1,如果你查看窗口的右下角,你會看到單詞
純文本。要激活Python擴展,請保存文件(通過選擇File,Save from the menu,File:Save Filefrom the Command Palette,或者只使用+)as sieve.py。VS Code將看到.py擴展並將文件正確解釋為Python代碼。現在你的窗口應該是這樣的:
那好多了!VS Code會自動將文件重新格式化為Python,您可以通過檢查左下角的語言模式來驗證。
如果您有多個Python安裝(如Python 2.7,Python 3.x或Anaconda),您可以通過單擊語言模式指示器或選擇Python來更改VS Code使用的Python解釋器:從命令選項板中選擇Interpreter。VS代碼支持的格式使用pep8
默認,但你可以選擇black或者yapf如果你想。
我們現在添加其餘的Sieve代碼。要在工作中查看IntelliSense,請直接鍵入此代碼而不是剪切和粘貼,您應該看到如下內容:
這是Eratosthenes基本篩選的完整代碼:
sieve = [True] * 101
for i in range(2, 100):
if sieve[i]:
print(i)
for j in range(i*i, 100, i):
sieve[j] = False
當您鍵入此代碼時,VS Code會自動縮進下面的行
for和if語句,添加右括號,併為您提供建議。這就是IntelliSense為您服務的力量。
運行Python代碼
現在代碼已經完成,您可以運行它。沒有必要讓編輯器執行此操作:Visual Studio Code可以直接在編輯器中運行此程序。保存文件(使用+),然後在編輯器窗口中右鍵單擊並選擇在終端中運行Python文件:
您應該會看到終端窗格顯示在窗口的底部,並顯示您的代碼輸出。
Python Linting支持
您可能在鍵入時看到彈出窗口,說明linting不可用。您可以從彈出窗口快速安裝linting支持,默認為PyLint。VS Code還支持其他短信。這是撰寫本文時的完整列表:
- pylint
- flake8
- mypy
- pydocstyle
- pep8
- prospector
- pyllama
- bandit
在Python的掉毛頁有關於如何設置每個棉短絨的完整細節。
注意:linter的選擇是項目工作空間設置,而不是全局用戶設置。
編輯現有的Python項目
在Eratosthenes的Sieve示例中,您創建了一個Python文件。這很好,作為一個例子,但很多時候,你會創建更大的項目,並在更長的時間內處理它們。典型的新項目工作流程可能如下所示:
- 創建一個文件夾來保存項目(可能包含一個新的GitHub項目)
- 切換到新文件夾
- 使用該命令創建初始Python代碼
- code filename.py
在Python項目上使用Visual Studio Code(而不是單個Python文件)開闢了更多功能,讓VS Code真正發揮作用。讓我們來看看它如何與更大的項目一起工作。
在上一個千禧年的晚些時候,當我還是一個更年輕的程序員時,我編寫了一個計算器程序,使用Edsger Dijkstra的調車碼算法改編的方法解析用中綴符號編寫的方程式。
為了演示Visual Studio Code的以項目為中心的功能,我開始在Python中重新創建分流碼算法作為方程式評估庫。要繼續關注,請隨意在本地克隆回購。
在本地創建文件夾後,您可以快速打開VS Code中的整個文件夾。我的首選方法(如上所述)修改如下,因為我已經創建了文件夾和基本文件:
cd / path / to / project代碼。
VS代碼的理解,並會使用,任何的virtualenv,pipenv,或暢達打開這種方式,當它看到的環境。您甚至不需要首先啟動虛擬環境!您甚至可以使用
文件,菜單中的“ 打開文件夾 ”,鍵盤上的+,+或命令選項板中的“ 文件:打開文件夾”從UI 打開文件夾。對於我的方程式eval庫項目,這是我看到的:
當Visual Studio代碼打開文件夾時,它還會打開您上次打開的文件。(這是可配置的。)您可以打開,編輯,運行和調試列出的任何文件。左側活動欄中的資源管理器視圖為您提供文件夾中所有文件的視圖,並顯示當前選項卡集中存在多少未保存文件。
測試支持
如果在當前環境中安裝了這些框架,VS Code可以自動識別在框架中編寫的現有Python測試unittest,pytest或者Nose框架。我為等式eval庫編寫了一個單元測試unittest,您可以將其用於此示例。
要從項目中的任何Python文件運行現有的單元測試,請右鍵單擊並選擇“運行當前單元測試文件”。系統將提示您指定測試框架,在項目中搜索測試的位置以及測試使用的文件名模式。
所有這些都保存為本地
.vscode/settings.json
文件中的工作區設置,並可在此處進行修改。對於此等式項目,您可以選擇unittest當前文件夾和模式*_test.py
。
設置測試框架並發現測試後,可以通過單擊狀態欄上的“ 運行測試 ”並從“命令選項板”中選擇一個選項來運行所有測試:
您甚至可以通過在VS代碼中打開測試文件,單擊狀態欄上的運行測試,然後選擇運行單元測試方法...以及要運行的特定測試來運行單個測試。這使得解決單個測試失敗並重新運行失敗的測試變得微不足道,這是一個巨大的節省時間!測試結果顯示在Python Test Log下的Output窗格中。
調試支持
即使VS Code是代碼編輯器,也可以直接在VS Code中調試Python。VS Code提供了許多您期望從良好的代碼調試器中獲得的功能,包括:
- 自動變量跟蹤
- 觀看錶達式
- 斷點
- 調用堆棧檢查
您可以在活動欄上的Debug 視圖中看到它們:
調試器可以控制在內置終端或外部終端實例中運行的Python應用程序。它可以附加到已經運行的Python實例,甚至可以調試Django和Flask應用程序。
在單個Python文件中調試代碼就像啟動調試器一樣簡單。您可以分別使用和跳過函數,然後使用+退出調試器。通過單擊編輯器窗口中的左邊距來設置斷點,或使用鼠標設置斷點。
在開始調試更復雜的項目(包括Django或Flask應用程序)之前,需要先設置然後選擇調試配置。設置調試配置相對簡單。從Debug視圖中,選擇Configuration下拉列表,然後選擇Add Configuration,並選擇Python:
Visual Studio Code將在當前文件夾下創建一個調試配置文件,該文件
.vscode/launch.json
允許您設置特定的Python配置以及調試特定應用程序的設置,如Django和Flask。
您甚至可以執行遠程調試,並調試Jinja和Django模板。
launch.json
在編輯器中關閉該文件,然後從“ 配置”下拉列表中為您的應用程序選擇正確的配置。
Git集成
VS Code內置了對源代碼管理的支持,並且開箱即用,支持Git和GitHub。您可以在VS Code中安裝對其他SCM的支持,並將它們並排使用。可以從“ 源代碼管理”視圖訪問源代碼管理:
如果您的項目文件夾包含一個.git文件夾,VS Code會自動打開所有Git / GitHub功能。以下是您可以執行的許多任務:
- 將文件提交給Git
- 將更改推送到遠程存儲庫並從中取出更改
- 簽出現有或創建新的分支和標籤
- 查看並解決合併衝突
- 查看差異
所有這些功能都可以直接從VS Code UI獲得:
VS Code還將識別在編輯器外部進行的更改並且行為正確。
在VS Code中提交最近的更改是一個相當簡單的過程。修改後的文件顯示在“ 源代碼管理”視圖中,帶有M標記,而新的未跟蹤文件則使用U標記。通過將鼠標懸停在文件上然後單擊加號(+)來暫停更改。在視圖頂部添加提交消息,然後單擊複選標記以提交更改:
您也可以從VS Code中將本地提交推送到GitHub。從“ 源代碼管理”視圖菜單中選擇“ 同步” ,或單擊分支指示器旁邊狀態欄上的“ 同步更改 ” 。
結論
Visual Studio Code是最酷的通用編輯器之一,也是Python開發的理想選擇。在本文中,您瞭解到:
- 如何在任何平臺上安裝VS Code
- 如何查找和安裝擴展以啟用特定於Python的功能
- VS Code如何使編寫簡單的Python應用程序變得更容易
- 如何在VS Code中運行和調試現有的Python程序
- 如何使用VS Code中的Git和GitHub存儲庫
Visual Studio Code已成為我的Python和其他任務的默認編輯器,我希望你也有機會成為你的。
閱讀更多 科技之先一米陽光 的文章