如何為 Python 開(kāi)發(fā)配置 Visual Studio 代碼
Visual Studio Code是最通用的代碼編輯器之一。盡管它是一個(gè)代碼編輯器,但該程序的絕對(duì)可擴(kuò)展性使其幾乎與一些 JetBrains 產(chǎn)品一樣強(qiáng)大。
在本文中,我將引導(dǎo)您完成配置 Visual Studio Code for Python 開(kāi)發(fā)的整個(gè)過(guò)程。這不是一個(gè)通用的設(shè)置,但這是我個(gè)人使用的東西,發(fā)現(xiàn)它真的很舒服。
第一步是在計(jì)算機(jī)上安裝 Visual Studio Code。我現(xiàn)在在 Debian 12 上,我已經(jīng)準(zhǔn)備好了編輯器。文檔中提供了特定于平臺(tái)的安裝說(shuō)明。
假設(shè)您已經(jīng)過(guò)了安裝步驟,現(xiàn)在我將向您介紹一組基本擴(kuò)展,這些擴(kuò)展將使您的 Python 開(kāi)發(fā)體驗(yàn)提升到一個(gè)新的水平。
蟒蛇擴(kuò)展
您需要安裝的第一個(gè)擴(kuò)展是 Microsoft 中的?Python 擴(kuò)展。
這實(shí)際上是一個(gè)包含兩個(gè)擴(kuò)展的擴(kuò)展包。第一個(gè)擴(kuò)展是 Python 擴(kuò)展。它為Visual Studio Code中的Python開(kāi)發(fā)奠定了基礎(chǔ)。
另一個(gè)是Pylance,這是一個(gè)非常高性能的Python語(yǔ)言服務(wù)器。
此擴(kuò)展提供了豐富的智能感知支持,并由?Pyright(Microsoft 中的靜態(tài)類型檢查器)提供支持。您需要考慮的下一件事是棉絨。
拉夫·林特
linter 是一個(gè)程序,用于靜態(tài)分析您的代碼,并提供有關(guān)可能錯(cuò)誤的寶貴見(jiàn)解。
Pylance 擴(kuò)展在查找代碼中的致命錯(cuò)誤方面做得非常出色,但代碼遠(yuǎn)不止于此。
在處理一個(gè)大項(xiàng)目時(shí),在代碼庫(kù)中留下不必要的混亂是很常見(jiàn)的。諸如未使用的導(dǎo)入和變量、錯(cuò)誤的代碼實(shí)踐等。
一個(gè)好的 linter 可以指出代碼聞起來(lái)像這樣,并使您的代碼更干凈?,F(xiàn)在,當(dāng)涉及到Python linters時(shí),首選是Pylint。
Pylint 已經(jīng)存在了很長(zhǎng)時(shí)間并且效果很好,但我認(rèn)為有更好的選擇。
Ruff 是一個(gè)用 Rust 編寫(xiě)的非常快的 Python linter,它比 Pylint 施加了更嚴(yán)格的 linting 規(guī)則。該工具還有一個(gè)官方擴(kuò)展名。
它是一個(gè)即插即用擴(kuò)展,不需要任何額外的配置。因此,一旦安裝了它,您就可以開(kāi)始了。
我排序
像 linter 一樣,isort?是另一個(gè)唯一目的是對(duì)導(dǎo)入語(yǔ)句進(jìn)行排序的實(shí)用程序。
該實(shí)用程序按字母順序?qū)λ袑?dǎo)入進(jìn)行排序,同時(shí)將它們劃分為多個(gè)部分。
擴(kuò)展非常簡(jiǎn)單。獲得擴(kuò)展名后,它將在任何看起來(lái)不合適的導(dǎo)入語(yǔ)句下呈現(xiàn)波浪線。
然后,您可以使用快速操作菜單對(duì)它們進(jìn)行排序?;蛘撸部梢允褂妹蠲姘蹇焖僭L問(wèn) isort 命令。
Mypy類型檢查器
在我開(kāi)始談?wù)撨@個(gè)擴(kuò)展之前,讓我解釋一下mypy實(shí)際上是什么。
根據(jù)他們主頁(yè)上的信息:
Mypy是Python的一個(gè)可選的靜態(tài)類型檢查器,旨在結(jié)合動(dòng)態(tài)(或“鴨子”)類型和靜態(tài)類型的優(yōu)點(diǎn)。Mypy將Python的表達(dá)能力和便利性與強(qiáng)大的類型系統(tǒng)和編譯時(shí)類型檢查相結(jié)合。
簡(jiǎn)而言之,mypy 迫使您在 Python 程序中添加基本類型注釋,使它們更容易理解。
最近,Microsoft發(fā)布了一個(gè)擴(kuò)展,該擴(kuò)展使用mypy將類型檢查功能添加到他們心愛(ài)的編輯器中。
安裝擴(kuò)展后,它將對(duì)代碼執(zhí)行必要的檢查,并將任何缺少的類型注釋報(bào)告為編譯時(shí)錯(cuò)誤。
雖然具有類型注釋不是強(qiáng)制性的,但強(qiáng)烈建議這樣做。
智能代碼
IntelliCode在Visual Studio Code中提供AI輔助代碼完成。這聽(tīng)起來(lái)可能類似于GitHub Copilot,但實(shí)際上它比這小得多。
GitHub Copilot或Tabnine提供成熟的代碼塊,IntelliCode可以完美地自動(dòng)完成代碼行。
在大多數(shù)情況下,此擴(kuò)展可以通過(guò)建議正確的內(nèi)容來(lái)幫助您鍵入更少的相同代碼,同時(shí)避免妨礙您。
誤差鏡頭
雖然與Python沒(méi)有特別關(guān)系,但Error Lens是一個(gè)很好的擴(kuò)展,它將錯(cuò)誤嵌入在代碼行的旁邊。
我經(jīng)常在我的14英寸Thinkpad上工作,喜歡關(guān)閉終端窗格。錯(cuò)誤鏡頭消除了不時(shí)查看終端以查看我的錯(cuò)誤和警告的需要。
盡管它可能很有用,但有時(shí)由于所有警告和錯(cuò)誤輸出,您的編輯器看起來(lái)很混亂,因此請(qǐng)做出相應(yīng)的決定。
縮進(jìn)彩虹
與其他編程語(yǔ)言不同,不正確的縮進(jìn)級(jí)別可能會(huì)破壞 Python 中的程序。
Visual Studio Code 在可視化代碼中的縮進(jìn)級(jí)別方面已經(jīng)做得很好,但是如果你想給它添加一些顏色,縮進(jìn)彩虹包就是你需要的。
它為不同的縮進(jìn)級(jí)別添加不同的顏色。就個(gè)人而言,我不經(jīng)常使用這個(gè),但您可能會(huì)發(fā)現(xiàn)它很有用。
結(jié)論
就像我說(shuō)的,這些擴(kuò)展和我的個(gè)人配置不是靈丹妙藥。但是這個(gè)設(shè)置是我已經(jīng)使用了很長(zhǎng)一段時(shí)間的東西,我希望它對(duì)你也有用。
我經(jīng)常根據(jù)我從事的項(xiàng)目安裝專門(mén)的擴(kuò)展。例如,當(dāng)我在處理Django或Flask項(xiàng)目時(shí),我會(huì)使用Django或Jinja項(xiàng)目。
或者我在處理Jupyter Notebook時(shí)安裝了Jupyter擴(kuò)展。因此,請(qǐng)隨意安裝您需要的任何東西,只是不要過(guò)度安裝。