在 Windows 上怎樣做 Python 開發(fā)?是像大神那樣使用純文本編輯器,還是用更加完善的 IDE?到底是用自帶的命令行工具,還是需要裝新的 Terminal?本文將帶你了解如何利用微軟官方維護(hù)的 MS Terminal 與 VS Code,來(lái)為 Python 開發(fā)保駕護(hù)航。
使用 Windows 系統(tǒng)一大好處是它的應(yīng)用太豐富了,甚至強(qiáng)大的 GPU 也能在閑暇時(shí)間做點(diǎn)其它「工作」。然而與 Linux 或 macOS 不同,在 Windows 上做開發(fā)總會(huì)遇到很多挑戰(zhàn),不論是文件編碼、環(huán)境控制還是項(xiàng)目編譯,開發(fā)過(guò)程中總會(huì)有一些神奇的收獲。
這些對(duì)于初學(xué)者來(lái)說(shuō)尤其突出:我們?cè)诎惭b某個(gè)庫(kù)時(shí)可能出現(xiàn)各種依賴項(xiàng)錯(cuò)誤,我們?cè)谧x寫文本時(shí)出現(xiàn)各種編碼錯(cuò)誤等等。
那么在 Windows 上如何做 Python 開發(fā)呢?相信大神們都會(huì)有自己的解決方案,但本文希望介紹微軟官方發(fā)布的 Terminal 和 Visual Studio Code,希望它們能構(gòu)建更流暢的 Windows 開發(fā)體驗(yàn)。
Visual Studio Code 是程序員可以使用的最酷的代碼編輯器之一,是一個(gè)可在所有平臺(tái)上使用的開源、可擴(kuò)展和輕量級(jí)編輯器。正是這些品質(zhì)使微軟的 VS Code 大受歡迎,并成為 Python 開發(fā)的絕佳平臺(tái)??赡芎芏嘧x者都比較熟悉 PyCharm 與 Jupyter Notebook 等常見的 Python IDE,但 VS Code 一樣不會(huì)令你失望。
在本文中,你將學(xué)習(xí)到微軟 Terminal 和 Visual Studio Code 的特性,包括:
什么是微軟 Terminal
微軟 Terminal 效果怎么樣
安裝 Visual Studio Code
發(fā)現(xiàn)并安裝 Python 擴(kuò)展
編寫簡(jiǎn)單的 Python 應(yīng)用程序
了解如何在 VS Code 中運(yùn)行和調(diào)試現(xiàn)有 Python 程序
將 VS Code 連接到 Git 和 GitHub,與全世界分享你的代碼
我們假設(shè)你了解 Python 開發(fā),并且已經(jīng)在系統(tǒng)上安裝了某種版本的 Python(如 Python 2.7、Python 3.6/3.7、Anaconda 或其他)。由于 VS Code 可兼容所有主流平臺(tái),因此你可能會(huì)看到略有不同的 UI 元素,并且可能需要修改某些命令。
新興的微軟 Terminal
Windows Terminal 是一個(gè)開源終端應(yīng)用程序,由微軟在今年 5 月份的 Build 開發(fā)者大會(huì)上推出。MS Terminal 支持 Command Prompt 和 PowerShell 的所有優(yōu)點(diǎn),基本上命令行已經(jīng)可以和 Linux 相融合了,除此之外運(yùn)行命令提示符也是沒(méi)問(wèn)題的。
在 MS Terminal 開源后,GitHub 的 Star 量增長(zhǎng)得非???,目前已經(jīng)超過(guò)了 5 萬(wàn)。這足以說(shuō)明這個(gè)項(xiàng)目非常受關(guān)注,在社區(qū)的開源改進(jìn)下,這個(gè)工具一定挺好用。
MS Terminal 開源地址:https://github.com/microsoft/terminal
當(dāng)然,目前 MS Terminal 已經(jīng)可以直接下載安裝程序了,社區(qū)的體驗(yàn)也非常不錯(cuò)。因此如果我們?cè)?Windows 上做 Python 開發(fā),命令行工具就可以采用 MS Terminal,它能解決很大一部分的包安裝、環(huán)境控制等問(wèn)題。
MS Terminal 的效果怎么樣
MS Terminal 最核心的功能就是支持多條選項(xiàng)卡,且每一個(gè)選項(xiàng)卡都可以連接到命令行 shell 或應(yīng)用,例如 Command Prompt 或通過(guò) SSH 訪問(wèn)樹莓派等。下圖展示了這種多選項(xiàng)卡的支持情況:
此外,除了功能外,更重要的就是顏值,就像我們常用 zsh 來(lái)提供更美觀的命令行一樣。雖然 zsh 目前的 GitHub 收藏量已經(jīng)達(dá)到 9.4 萬(wàn)了,但 ReadMe 文檔清楚地寫著它最好用于 macOS 或 Linux。而新發(fā)布的 MS Terminal 不論在界面還是在文字風(fēng)格,都以前都強(qiáng)了很多。
背景透明度、文字高亮都可以自行定義,還能定義 emoji 等符號(hào)。如下為基本的展示,我們可以根據(jù)自己的需要調(diào)整整個(gè)界面。
整個(gè)項(xiàng)目還在積極開發(fā)中,很多功能也都在完善與增加。不過(guò)既然是微軟官方維護(hù)的開源項(xiàng)目,那么我們還是非常有信心的,至少在命令行部分可以降低開發(fā)過(guò)程中的各種報(bào)錯(cuò)。
安裝和配置 VS Code
前面介紹了開發(fā)中必不可缺的命令行工具,下面我們?cè)摿囊涣?VS Code 了,它是支持 Python 開發(fā)的核心工具。下面我們從最初的安裝、環(huán)境管理到編寫、測(cè)試、發(fā)布代碼,介紹我們?cè)撊绾蝺?yōu)雅地使用 VS Code。
在任何平臺(tái)上都可以安裝 Visual Studio Code。官網(wǎng)提供了 Windows、Mac 和 Linux 的完整安裝說(shuō)明,并且會(huì)每月更新編輯器,其中包含新功能和錯(cuò)誤修正。你可以在 Visual Studio Code 網(wǎng)站上找到所有安裝內(nèi)容:
此外,除名稱相近外,Visual Studio Code(簡(jiǎn)稱 VS Code)與基于 Windows 的更大規(guī)模的 Visual Studio 幾乎沒(méi)有其他相同的地方。
Visual Studio Code 本身支持多種語(yǔ)言,并且它的一個(gè)擴(kuò)展模型具有支持其他組件的豐富生態(tài)系統(tǒng)。VS Code 每月更新,你可以在微軟 Python 博客中了解更新信息。任何用戶都可以克隆微軟的 VS Code Github 倉(cāng)庫(kù)并貢獻(xiàn)自己的代碼。
VS Code UI 已有詳細(xì)記錄,這里不予贅述:
Python 擴(kuò)展
如上所述,VS Code 通過(guò)詳細(xì)記錄的擴(kuò)展模型支持多種編程語(yǔ)言的開發(fā)。Python 擴(kuò)展使用戶可以在 Visual Studio Code 中進(jìn)行 Python 開發(fā),具有以下特征:
既支持 Python 3.4 及更高版本,也支持 Python 2.7 版本
使用 IntelliSense 完成代碼補(bǔ)全
Linting
調(diào)試支持
代碼片段支持
單元測(cè)試支持
自動(dòng)使用 conda 和虛擬環(huán)境
在 Jupyter 環(huán)境和 Jupyter 筆記本中進(jìn)行代碼編輯
Visual Studio Code 擴(kuò)展不僅僅具有編程功能:
Keymaps 允許已經(jīng)熟悉 Atom,Sublime Text,Emacs,Vim,PyCharm 或其他環(huán)境的用戶更加容易上手。
主題自定義 UI,無(wú)論您喜歡在明亮,黑暗或更豐富多彩的地方進(jìn)行編碼。
語(yǔ)言包提供本地化體驗(yàn)。
以下是比較有用的一些其他擴(kuò)展和設(shè)置:
GitLens 直接在編輯視窗中提供了大量有用的 Git 功能,包括非責(zé)任注釋和存儲(chǔ)庫(kù)開發(fā)功能。
通過(guò)從菜單中選擇 File, Auto Save,可以輕松進(jìn)行自動(dòng)保存。默認(rèn)延遲時(shí)間為 1000 毫秒,也可以重新配置。
Settings Sync 允許用戶借助 GitHub 在不同的裝置中同步自己的 VS Code 設(shè)置。如果用戶在不同的計(jì)算機(jī)上工作,這有助于運(yùn)行環(huán)境保持一致。
Docker 讓用戶可以快速輕松地使用 Docker,幫助創(chuàng)作 Dockerfile 和 docker-compose.yml,打包和部署項(xiàng)目,甚至為項(xiàng)目生成適當(dāng)?shù)?Docker 文件。
當(dāng)然,在使用 VS Code 時(shí),你可能會(huì)發(fā)現(xiàn)其他有用的擴(kuò)展。請(qǐng)?jiān)谠u(píng)論中分享你的發(fā)現(xiàn)和設(shè)置!
單擊活動(dòng)欄(Activity Bar)上的「擴(kuò)展」圖標(biāo)可以訪問(wèn)和安裝新擴(kuò)展和主題。用戶可以輸入關(guān)鍵詞來(lái)搜索擴(kuò)展程序,以多種方式對(duì)搜索結(jié)果進(jìn)行排序,快速輕松地安裝擴(kuò)展程序。在本文中,在活動(dòng)欄的 Extensions 項(xiàng)中鍵入 python 并單擊 Install 即可安裝 Python 擴(kuò)展:
用戶可以通過(guò)相同的方式查找和安裝上述任何擴(kuò)展。
Visual Studio Code 配置文件
值得一提的是,Visual Studio Code 可通過(guò)用戶和工作區(qū)設(shè)置(User and Workspace Settings)實(shí)現(xiàn)高度配置。
用戶設(shè)置(User settings)在所有 Visual Studio Code 實(shí)例中都是全局性的,而工作區(qū)設(shè)置(Workspace Settings)是特定文件夾或項(xiàng)目工作區(qū)的本地設(shè)置。工作區(qū)設(shè)置為 VS Code 提供了極大的靈活性,工作區(qū)設(shè)置會(huì)在整篇文章中提到。工作區(qū)設(shè)置以.json 文件的形式存儲(chǔ)在名為.vscode 的項(xiàng)目工作區(qū)本地文件夾中。
啟動(dòng)新的 Python 程序
讓我們以一個(gè)新的 Python 程序來(lái)探索 Visual Studio Code 中的 Python 開發(fā)。在 VS Code 中,鍵入 Ctrl + N 打開一個(gè)新文件。(你也可以從菜單中選擇「文件」-「新建」。)
無(wú)論你如何操作,你都應(yīng)該看到一個(gè)類似于以下內(nèi)容的 VS Code 窗口:
打開新文件后,你即可以輸入代碼。
輸入 Python 代碼
作為測(cè)試,我們可以快速編碼埃拉托斯特尼篩法(Sieve of Eratosthenes,它可以找出小于已知數(shù)的所有質(zhì)數(shù))。在剛打開的新選項(xiàng)卡中鍵入以下代碼:
等等,這是怎么回事?為什么 Visual Studio Code 沒(méi)有進(jìn)行任何關(guān)鍵詞高亮顯示,也沒(méi)有進(jìn)行任何自動(dòng)格式化或任何真正有用的操作呢?它提供了什么?
答案是,VS Code 不知道它正在處理的是什么類型的文件。緩沖區(qū)被稱為 Untitled-1,如果你查看窗口的右下角,則可以看到 Plain Text(純文本)。
若要激活 Python 擴(kuò)展,請(qǐng)保存文件(從菜單中選擇 File-Save 或者從命令面板中選擇 File-Save File 或者只使用 Ctrl + S)為 sieve.py。VS Code 將看到.py 擴(kuò)展名并正確地將該文件轉(zhuǎn)化為 Python 代碼。
現(xiàn)在你的窗口視圖應(yīng)如下所示:
這樣就好多了!VS Code 會(huì)自動(dòng)將文件重新格式化為 Python 代碼,你可以通過(guò)檢查左下角的語(yǔ)言模式予以驗(yàn)證。
如果你有多個(gè) Python 安裝(如 Python 2.7、Python 3.x 或 Anaconda),則可以通過(guò)單擊語(yǔ)言模式指示器或者從命令面板中選擇 Python: Select Interpreter 來(lái)更改 VS Code 所要使用的 Python 解釋器。默認(rèn)情況下,VS Code 支持使用 pep8 格式,但你也可以選擇 black 或 yapf。
現(xiàn)在可以添加其余的 Sieve 代碼。若要查看 IntelliSense,請(qǐng)直接鍵入此代碼而不要剪切和粘貼,你應(yīng)該看到如下內(nèi)容:
當(dāng)鍵入代碼時(shí),VS Code 會(huì)對(duì) for 和 if 語(yǔ)句下面的行進(jìn)行自動(dòng)、適當(dāng)?shù)目s進(jìn),添加右括號(hào),并給出內(nèi)容提示。
運(yùn)行 Python 代碼
現(xiàn)在代碼已經(jīng)完成,你可以運(yùn)行它了。沒(méi)有必要讓編輯器執(zhí)行此操作:Visual Studio Code 可以直接在編輯器中運(yùn)行此程序。保存文件(Ctrl + S),然后在編輯器窗口中單擊右鍵并選擇在終端(Terminal)中運(yùn)行 Python 文件(Run Python File):
你會(huì)看到終端窗格顯示在窗口的底部,并顯示代碼輸出結(jié)果。
編輯現(xiàn)有的 Python 項(xiàng)目
在 Sieve of Eratosthenes 示例中,你創(chuàng)建了一個(gè) Python 文件。作為一個(gè)例子這很不錯(cuò),但很多時(shí)候,你需要?jiǎng)?chuàng)建更大的項(xiàng)目,并在更長(zhǎng)的時(shí)間內(nèi)在它上面進(jìn)行開發(fā)。
典型的新項(xiàng)目工作流程可能如下所示:
創(chuàng)建一個(gè)文件夾來(lái)保存項(xiàng)目(可能包含一個(gè)新的 GitHub 項(xiàng)目)
更改為新文件夾
使用命令 code filename.py 創(chuàng)建初始 Python 代碼
在 Python 項(xiàng)目(而不是單個(gè) Python 文件)上使用 Visual Studio Code 開辟了更多功能,使得 VS Code 能夠真正發(fā)揮作用。讓我們來(lái)看看它在更大的項(xiàng)目中如何運(yùn)作。
假如我們編寫了一個(gè)計(jì)算器程序,該程序通過(guò)艾茲格·迪科斯徹(Edsger Dijkstra)調(diào)度場(chǎng)算法的一種變體來(lái)解析中綴符號(hào)(infix notation)編寫的方程式。
為了說(shuō)明 Visual Studio Code 以項(xiàng)目為中心的特征,我們現(xiàn)在開始在 Python 中重新創(chuàng)建調(diào)度場(chǎng)算法作為方程式評(píng)估庫(kù)。相應(yīng) GitHub 地址:https://github.com/JFincher42/PyEval。
本地文件夾創(chuàng)建后,你可以快速打開 VS Code 中的整個(gè)文件夾。由于我們已經(jīng)創(chuàng)建了文件夾和基本文件,所以首選方法(如上所述)做出如下修正:
cd /path/to/project
code 。
當(dāng)你這種方式打開時(shí),VS Code 了解并將使用它看到的任何 virtualenv、pipenv 或 conda 環(huán)境。你甚至不需要首先啟動(dòng)虛擬環(huán)境。通過(guò)菜單中的 File, Open Folder、鍵盤上的 Ctrl+K, Ctrl+O 或者命令面板中的 File, Open Folder 等方式,你可以打開用戶界面(UI)上的文件夾。
以下是創(chuàng)建的方程式 eval 庫(kù)項(xiàng)目:
當(dāng) Visual Studio Code 打開文件夾時(shí),它還會(huì)再次打開上次打開的文件(這是可配置的)。你可以打開、編輯、運(yùn)行和調(diào)試列出的任何文件。左側(cè)活動(dòng)欄中的資源管理器視圖(Explorer view)提供文件夾中所有文件的視圖,并顯示當(dāng)前選項(xiàng)卡集中有多少未保存文件。
代碼測(cè)試的支持
VS Code 可以自動(dòng)識(shí)別在 unittest、pytest 或 Nose 框架中編寫的現(xiàn)有 Python 測(cè)試,但前提是在當(dāng)前環(huán)境中安裝了這些框架。作者在 unittest 框架中編寫了一個(gè)用于方程式 eval 庫(kù)的單元測(cè)試,你可以在這個(gè)例子中使用它。
若要運(yùn)行項(xiàng)目中任何 Python 文件的現(xiàn)有單元測(cè)試,請(qǐng)單擊右鍵并選擇 Run Current Unit Test File。系統(tǒng)將提示指定測(cè)試框架,在項(xiàng)目中搜索測(cè)試的位置以及測(cè)試使用的文件名模式。
所有這些都保存為本地.vscode/settings.json 文件中的工作區(qū)設(shè)置,并可以進(jìn)行修改。對(duì)于這個(gè)等式項(xiàng)目,你可以選擇 unittest、當(dāng)前文件夾和模式 *_test.py。
測(cè)試框架設(shè)置完成并顯示測(cè)試后,你可以單擊狀態(tài)欄(Status Bar)上的 Run Tests 并從命令面板中選擇一個(gè) option 來(lái)運(yùn)行所有測(cè)試:
通過(guò)在 VS Code 中打開測(cè)試文件,單擊狀態(tài)欄上的 Run Tests,然后選擇 Run Unit Test Method 以及其他要運(yùn)行的特定測(cè)試,你還可以運(yùn)行單個(gè)測(cè)試。這使得解決單個(gè)測(cè)試失敗并重新運(yùn)行失敗的測(cè)試變得很簡(jiǎn)單,從而能夠節(jié)省大量時(shí)間。測(cè)試結(jié)果顯示在 Python Test Log 下的 Output 窗格中。
調(diào)試支持
即使 VS Code 是代碼編輯器,直接在 VS Code 中調(diào)試 Python 也是可以的。VS Code 提供的諸多功能可以媲美好的代碼調(diào)試器,包括:
自動(dòng)變量跟蹤
監(jiān)看表達(dá)式
斷點(diǎn)
調(diào)用堆棧檢查
你可以在活動(dòng)欄上的 Debug 視圖中看到這些功能:
調(diào)試器可以控制在內(nèi)置終端或外部終端實(shí)例中運(yùn)行的 Python 應(yīng)用程序。它可以附加到已經(jīng)運(yùn)行的 Python 實(shí)例中,甚至可以調(diào)試 Django 和 Flask 應(yīng)用程序。
在單個(gè) Python 文件中調(diào)試代碼就像按 F5 啟動(dòng)調(diào)試器一樣簡(jiǎn)單。你可以按 F10 和 F11 分別跳過(guò)和進(jìn)入函數(shù),并按 Shift + F5 退出調(diào)試器。按 F9 設(shè)置斷點(diǎn),或者通過(guò)單擊編輯器窗口中的左空白(lift margin)進(jìn)行設(shè)置。
在開始調(diào)試更復(fù)雜的項(xiàng)目(包括 Django 或 Flask 應(yīng)用程序)之前,你首先需要設(shè)置并選擇調(diào)試配置。設(shè)置調(diào)試配置相對(duì)簡(jiǎn)單。從 Debug 視圖中選擇 Configuration 下拉列表(drop-down),然后選擇 Add Configuration 和 Python:
Visual Studio Code 將在當(dāng)前名為.vscode/launch.json 的文件夾下創(chuàng)建一個(gè)調(diào)試配置文件,它允許用戶設(shè)置特定的 Python 配置以及調(diào)試 Django 和 Flask 等特定應(yīng)用程序的設(shè)置。
你還可以執(zhí)行遠(yuǎn)程調(diào)試,并調(diào)試 Jinja 和 Django 模板。關(guān)閉編輯器中的 launch.json 文件,然后從 Configuration 下拉列表中為應(yīng)用程序選擇正確的配置。
Git 集成
VS Code 不僅內(nèi)置對(duì)源代碼控制管理的支持,還支持 Git 和 GitHub。你可以在 VS Code 中安裝對(duì)其他 SCM 的支持,并列使用它們。用戶可以從 Source Control 視圖訪問(wèn)源代碼控制:
如果你的項(xiàng)目文件夾包含.git 文件夾,VS Code 會(huì)自動(dòng)打開所有 Git / GitHub 功能。你可以執(zhí)行以下諸多任務(wù):
將文件提交給 Git
將更改推送到遠(yuǎn)程存儲(chǔ)庫(kù)(remote repo)并從中取出更改
check-out 現(xiàn)有或創(chuàng)建新的分支和標(biāo)簽(branch and tag)
查看并解決合并沖突(merge conflict)
查看差異(view diffs)
所有這些功能都可以直接從 VS Code UI 獲得:
VS Code 還可以識(shí)別編輯器外部進(jìn)行的更改并且正確運(yùn)作。
在 VS Code 中提交最近的更改相當(dāng)簡(jiǎn)單。修改后的文件顯示在 Source Control 視圖中,并帶有 M 標(biāo)記,而新的未跟蹤文件使用 U 標(biāo)記。將鼠標(biāo)懸停在文件上然后單擊加號(hào)(+)可以暫存更改。在視圖頂部添加提交消息,然后單擊復(fù)選標(biāo)記來(lái)提交更改:
你也可以在 VS Code 中將本地提交(local commits)推送到 GitHub。從 Source Control 視圖菜單中選擇 Sync,或者單擊分支指示器(branch indicator)旁邊狀態(tài)欄上的 Synchronize Changes。
所以在作者看來(lái),Visual Studio Code 是最酷的通用編輯器之一,也是 Python 開發(fā)的最佳候選工具。希望你也可以在 Python 開發(fā)中嘗試使用 Visual Studio Code 編輯器,相信不會(huì)令你失望的。
審核編輯 :李倩
-
代碼
+關(guān)注
關(guān)注
30文章
4796瀏覽量
68706 -
編輯器
+關(guān)注
關(guān)注
1文章
806瀏覽量
31199 -
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84785
原文標(biāo)題:Windows上寫 Python 代碼的王炸組合!
文章出處:【微信號(hào):AndroidPush,微信公眾號(hào):Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論