PyCharm 是一種 Python IDE,可以幫助程序員節(jié)約時(shí)間,提高生產(chǎn)效率。那么具體如何使用呢?本文從 PyCharm 安裝到插件、外部工具、專(zhuān)業(yè)版功能等進(jìn)行了一一介紹,希望能夠幫助到大家。 機(jī)器之心之前也沒(méi)系統(tǒng)地介紹過(guò) PyCharm,怎樣配置環(huán)境、怎樣 DeBug、怎樣同步 GitHub 等等可能都是通過(guò)經(jīng)驗(yàn)或者摸索學(xué)會(huì)的。在本文中,我們并不會(huì)提供非常完善的指南,但是會(huì)介紹 PyCharm 最主要的一些能力,了解這些后,后面就需要我們?cè)趯?shí)踐中再具體學(xué)習(xí)了。 機(jī)器之心的讀者應(yīng)該非常了解 JetBrains 開(kāi)發(fā)的 PyCharm 了,它差不多是 Python 最常用的 IDE。PyCharm 可以為我們節(jié)省大量時(shí)間,它能夠管理代碼,并完成大量其他任務(wù),如 debug 和可視化等。 本文將介紹:
本文假設(shè)讀者熟悉 Python 開(kāi)發(fā),且計(jì)算機(jī)中已安裝某個(gè)版本的 Python。該教程將使用 Python 3.6 版本,屏幕截圖和 demo 均來(lái)自 macOS 系統(tǒng)。由于 PyCharm 可在所有主流平臺(tái)上運(yùn)行,讀者在其他系統(tǒng)中會(huì)看到略微不同的 UI 元素,可能需要調(diào)整某些命令。 PyCharm 安裝 本文將使用 PyCharm Community Edition 2019.1 版本,該版本免費(fèi)且可在所有主流平臺(tái)上使用。只有最后一部分「PyCharm Professional 功能」使用的是 PyCharm Professional Edition 2019.1 版本。 推薦使用 JetBrains Toolbox App 安裝 PyCharm。使用該 App,你可以安裝不同的 JetBrains 產(chǎn)品或者同一產(chǎn)品的不同版本,并在必要的情況下更新、回滾和輕松刪除任意工具。你還可以在恰當(dāng)?shù)?IDE 及版本中快速打開(kāi)任意項(xiàng)目。 Toolbox App 安裝指南,參見(jiàn) JetBrains 官方文檔:https://www./help/pycharm/installation-guide.html#toolbox。 該 App 會(huì)根據(jù)你的操作系統(tǒng)提供合適的安裝說(shuō)明。如果它無(wú)法無(wú)法準(zhǔn)確識(shí)別系統(tǒng),你可以在右上角的下拉列表中找到合適的系統(tǒng)。
安裝成功后,啟動(dòng)該 app 并接受用戶(hù)協(xié)議。在 Tools 選項(xiàng)下,你可以看到一個(gè)可用產(chǎn)品列表。從中找到 PyCharm Community,并點(diǎn)擊 Install。 好啦,現(xiàn)在你的機(jī)器上已經(jīng)安裝 PyCharm 了。如果不想使用 Toolbox app,你可以單獨(dú)安裝 PyCharm。 啟動(dòng) PyCharm,你將看到導(dǎo)入設(shè)置彈窗。PyCharm 會(huì)自動(dòng)檢測(cè)出這是首次安裝,并為你選擇「Do not import settings」選項(xiàng)。點(diǎn)擊 OK,之后 PyCharm 會(huì)讓你選擇鍵盤(pán)映射(keymap scheme)。保留默認(rèn)設(shè)置,點(diǎn)擊右下角的「Next: UI Themes」:
PyCharm 將詢(xún)問(wèn)選擇深色模式 Darcula 還是淺色模式。你可以選擇自己喜歡的模式,并點(diǎn)擊「Next: Launcher Script」:
本教程將使用深色模式 Darcula。 在下一個(gè)頁(yè)面上,直接保留默認(rèn)設(shè)置,并點(diǎn)擊「Next: Featured plugins」,這時(shí) PyCharm 將展示可用插件列表。點(diǎn)擊「Start using PyCharm」,現(xiàn)在你可以寫(xiě)代碼了! 在 PyCharm 中寫(xiě)代碼 在 PyCharm 中,你可以在「項(xiàng)目」中執(zhí)行任意操作。因此,首先你需要?jiǎng)?chuàng)建一個(gè)項(xiàng)目。 安裝和打開(kāi) PyCharm 后,你會(huì)看到歡迎頁(yè)面。點(diǎn)擊「Create New Project」,出現(xiàn)「New Project」彈窗:
指定項(xiàng)目位置,打開(kāi) Project Interpreter 列表,選擇創(chuàng)建新的項(xiàng)目解釋器或者使用已有的解釋器。選擇「New environment using」,打開(kāi)其右方的下拉列表,選擇 Virtualenv、Pipenv 或 Conda。這些工具可以為不同項(xiàng)目單獨(dú)創(chuàng)建 Python 環(huán)境,從而分別保存不同項(xiàng)目所需的依賴(lài)項(xiàng)。 你可以選擇其中任意一個(gè),本教程使用的是 Virtualenv。選擇后,指定環(huán)境位置,從 Python 解釋器列表中選擇要安裝在系統(tǒng)中的 base interpreter。通常,保持默認(rèn)設(shè)置即可。 下面有兩個(gè)可選框:在新環(huán)境中繼承全局包環(huán)境、令當(dāng)前環(huán)境可以用其它所有項(xiàng)目,兩個(gè)都不要選。 點(diǎn)擊右下角的「Create」,創(chuàng)建新項(xiàng)目:
屏幕上出現(xiàn)「Tip of the Day」彈窗,在每次啟動(dòng)時(shí) PyCharm 通過(guò)該彈窗提供 trick。關(guān)掉該彈窗。 現(xiàn)在我們可以開(kāi)始新的 Python 程序了。如果你使用的是 Mac 系統(tǒng),使用 Cmd+N 鍵;如果你使用的是 Windows 或 Linux 系統(tǒng),使用 Alt+Ins 鍵。然后選擇 Python File。 你也可以在菜單中選擇 File → New。將新文件命名為 guess_game.py 并點(diǎn)擊 OK。你將看到如下 PyCharm 窗口:
至于測(cè)試代碼,我們來(lái)快速寫(xiě)一個(gè)簡(jiǎn)單的猜謎游戲,即程序選擇一個(gè)數(shù)字讓用戶(hù)來(lái)猜,在每一次猜測(cè)時(shí),程序?qū)⒏嬖V用戶(hù)他猜的數(shù)字比神秘?cái)?shù)字大還是小,用戶(hù)猜中數(shù)字時(shí)游戲結(jié)束。以下是該游戲的代碼:
直接鍵入上述代碼,而不是復(fù)制粘貼。你會(huì)看到如下畫(huà)面:
如上圖所示,PyCharm 提供 Intelligent Coding Assistance 功能,可以執(zhí)行代碼補(bǔ)全、代碼檢查、錯(cuò)誤高亮顯示和快速修復(fù)建議。比如鍵入 main 并點(diǎn)擊 tab 鍵,PyCharm 會(huì)自動(dòng)補(bǔ)全整個(gè) main 從句。 此外,如果你在條件句前忘記鍵入 if,在該句子最后增添.if 并點(diǎn)擊 Tab 鍵,PyCharm 將修復(fù)該 if 條件句。該用法同樣適用于 True.while。這即是 PyCharm 的 Postfix Completion 功能,它可以幫助用戶(hù)減少退格鍵使用次數(shù)。 在 PyCharm 中運(yùn)行代碼 現(xiàn)在你已經(jīng)編碼完成該游戲,可以運(yùn)行了。 該游戲程序有三種運(yùn)行方式:
使用以上任一方式運(yùn)行該程序,窗口底部會(huì)出現(xiàn)終端面板(Terminal pane),顯示你的代碼輸出結(jié)果:
你可以玩一下這個(gè)游戲,看看自己能否猜中數(shù)字。(專(zhuān)業(yè)建議:從 50 開(kāi)始猜。) 在 PyCharm 中進(jìn)行代碼 debug 找到神秘?cái)?shù)字了嗎?如果找到了,你可能會(huì)看到一些奇怪的東西:程序沒(méi)有打印出祝賀信息和顯示退出按鈕,而是重新開(kāi)始了。這就是 bug 所在。 要想發(fā)現(xiàn)程序重新開(kāi)始的原因,你需要 debug。 首先,點(diǎn)擊第 8 行代碼左側(cè)的空白區(qū)域,設(shè)置斷點(diǎn):
斷點(diǎn)即程序運(yùn)行到這一行時(shí)會(huì)自動(dòng)停止,你可以探索斷點(diǎn)處之后的代碼有什么錯(cuò)誤。接下來(lái),從以下三種方式中選擇一種開(kāi)始 debug:
之后,你將看到底部出現(xiàn) Debug 窗口:
按照下列步驟執(zhí)行程序 debug:
恭喜你,bug 被修復(fù)了! 在 PyCharm 中進(jìn)行代碼測(cè)試 不經(jīng)單元測(cè)試的應(yīng)用都不可靠。PyCharm 可以幫助你快速舒適地寫(xiě)單元測(cè)試并運(yùn)行。默認(rèn)情況下,unittest 被用作測(cè)試運(yùn)行器,而 PyCharm 還支持其他測(cè)試框架,如 pytest、nose、doctest、tox 和 trial。 例如,你可以按照以下步驟為項(xiàng)目選擇 pytest 測(cè)試運(yùn)行器:
本教程的示例將使用默認(rèn)測(cè)試運(yùn)行器 unittest。 在同一個(gè)項(xiàng)目中,創(chuàng)建文件 calculator.py,并將以下 Calculator 類(lèi)放入該文件:
PyCharm 使得為已有代碼創(chuàng)建測(cè)試變得輕而易舉。打開(kāi) calculator.py 文件,執(zhí)行以下步驟中的任意一個(gè):
選擇「Create New Test…」,得到以下窗口:
Target directory、Test file name 和 Test class name 這三項(xiàng)均保留默認(rèn)設(shè)置。選中上圖中兩種需要測(cè)試的方法并點(diǎn)擊 OK。好了! PyCharm 自動(dòng)創(chuàng)建文件 test_calculator.py,并在其中創(chuàng)建了以下 stub test:
使用以下方法中的任意一個(gè)運(yùn)行測(cè)試:
你將看到底部出現(xiàn)測(cè)試窗口,所有測(cè)試均失敗:
注意,左側(cè)是測(cè)試結(jié)果的層次結(jié)構(gòu),右側(cè)是終端的輸出?,F(xiàn)在,將代碼更改成以下代碼,實(shí)現(xiàn) test_add:
重新運(yùn)行測(cè)試,你會(huì)看到一個(gè)測(cè)試通過(guò)了,另一個(gè)則失敗。按照如下操作探索不同選項(xiàng),來(lái)展示已通過(guò)測(cè)試和被忽略測(cè)試,按照字母順序?qū)y(cè)試進(jìn)行排序,以及按照時(shí)長(zhǎng)對(duì)測(cè)試進(jìn)行排序:
注意,上圖中的 sleep(0.1) 方法的作用是使其中一個(gè)測(cè)試變慢,以便按時(shí)長(zhǎng)對(duì)測(cè)試進(jìn)行排序。 在 PyCharm 中編輯已有項(xiàng)目 單文件項(xiàng)目非常適合作為示例,但你通常需要處理較大的項(xiàng)目。這部分將介紹如何使用 PyCharm 處理較大項(xiàng)目。 為了探索 PyCharm 以項(xiàng)目為中心的特征,你將使用 Alcazar web 框架(該框架用于學(xué)習(xí)目的)。在本地復(fù)制該 repo(地址:https:///optins/view/alcazar-web-framework/)。 當(dāng)你在本地已有項(xiàng)目時(shí),使用以下方法中的任意一個(gè)在 PyCharm 中打開(kāi)項(xiàng)目:
之后,在計(jì)算機(jī)中找到包含該項(xiàng)目的文件夾,并打開(kāi)。 如果該項(xiàng)目包含虛擬環(huán)境,PyCharm 將自動(dòng)使用該虛擬環(huán)境,并將它作為項(xiàng)目解釋器。 如果你需要配置不同的虛擬環(huán)境 virtualenv,在 Mac 上打開(kāi) Preferences,或在 Windows 或 Linux 系統(tǒng)中使用 Ctrl+Alt+S 打開(kāi) Settings,找到 Project: ProjectName。 打開(kāi)下拉列表,選擇 Project Interpreter:
從下拉列表中選擇 virtualenv。如果沒(méi)有要選擇的項(xiàng),則點(diǎn)擊下拉列表右方的設(shè)置按鈕選擇 Add…。其余步驟和創(chuàng)建新項(xiàng)目的步驟相同。 在 PyCharm 中搜索和導(dǎo)航 在大項(xiàng)目中,我們很難記住每個(gè)事物的位置,因此快速導(dǎo)航和搜索非常重要。PyCharm 可以提供這些功能。接下來(lái),我們使用上一節(jié)中打開(kāi)的項(xiàng)目,實(shí)踐以下快捷鍵:
導(dǎo)航可使用以下快捷鍵:
更多細(xì)節(jié),參見(jiàn)官方文檔:https://www./help/pycharm/tutorial-exploring-navigation-and-search.html。 PyCharm 中的版本控制 版本控制系統(tǒng)(如 Git 和 Mercurial)是現(xiàn)代軟件開(kāi)發(fā)世界中最重要的工具之一。因此,IDE 必須支持版本控制。PyCharm 在這方面做得很好,它集成了大量流行的版本控制系統(tǒng),如 Git(和 Github (https://github.com/))、Mercurial、Perforce 和 Subversion。 注:以下示例中使用的版本控制系統(tǒng)為 Git。 配置版本控制系統(tǒng)(VCS) 要想實(shí)現(xiàn) VCS 集成,你需要在頂部菜單點(diǎn)擊 VCS → VCS Operations Popup…,或者在 Mac 系統(tǒng)中使用 Ctrl+V 鍵,在 Windows 或 Linux 系統(tǒng)中使用 Alt+` 鍵。選擇 Enable Version Control Integration…,你將看到以下窗口:
從下拉列表中選擇 Git,點(diǎn)擊 OK,這樣你就為項(xiàng)目設(shè)置好了 VCS。(注意,如果你打開(kāi)的已有項(xiàng)目已經(jīng)具備版本控制系統(tǒng),PyCharm 將會(huì)發(fā)現(xiàn)并自動(dòng)使用該版本控制系統(tǒng)。 ) 這時(shí)如果你前往 VCS Operations Popup…,你會(huì)發(fā)現(xiàn)一個(gè)不同的彈窗,它具備選項(xiàng) git add、git stash、git branch、git commit、git push 等等:
如果你找不到所需要的選項(xiàng),你可以在頂部菜單中點(diǎn)擊 VCS,選擇 Git,在這里你可以創(chuàng)建和查看 pull request。 提交和沖突處理 這是 PyCharm 中 VCS 集成的兩大特征,我個(gè)人經(jīng)常使用并且非常喜歡。假如你完成了工作,打算提交,前往 VCS → VCS Operations Popup… → Commit…,或者在 Mac 系統(tǒng)中使用 Cmd+K 鍵,在 Windows 或 Linux 系統(tǒng)中使用 Ctrl+K 鍵。 你將看到如下窗口:
在該窗口中,你可以:
是不是感覺(jué)很神奇很迅速?特別是如果你以前經(jīng)常通過(guò)命令行手動(dòng)執(zhí)行這些任務(wù)時(shí)。 團(tuán)隊(duì)合作中會(huì)出現(xiàn)合并沖突(merge conflict)。當(dāng)一個(gè)人對(duì)你正在處理的文件提交更改時(shí),你們二人更改了同一行導(dǎo)致更改重疊,這時(shí) VCS 無(wú)法決定選擇你的更改還是隊(duì)友的更改。 那么你可以使用以下箭頭和符號(hào)來(lái)解決這個(gè)問(wèn)題:
看起來(lái)很奇怪,我們很難分辨應(yīng)該刪除哪些更改、保留哪些更改。不要怕,PyCharm 來(lái)了!它可以用更好、更簡(jiǎn)潔的方法解決沖突。 在頂部菜單中前往 VCS,選擇 Git,然后選擇 Resolve conflicts…。選擇存在沖突的文件,點(diǎn)擊 Merge,出現(xiàn)以下窗口:
在左側(cè)列中,你可以查看自己做的更改。在右側(cè)列中,可以查看隊(duì)友做的更改。而中間列則顯示結(jié)果。 存在沖突的代碼行被高亮顯示,你可以在它們旁邊看到 X 和 >>/<<。點(diǎn)擊箭頭表示接受更改,點(diǎn)擊 X 則表示拒絕更改。解決所有沖突后,點(diǎn)擊 Apply 按鈕:
在上圖中,對(duì)于第一個(gè)沖突行,作者選擇拒絕自己的更改,接受隊(duì)友的更改。而在第二個(gè)沖突行中,作者接受了自己的更改,拒絕了隊(duì)友的更改。 使用 PyCharm 中的 VCS 集成還可以執(zhí)行很多操作。詳情參見(jiàn) https://www./help/pycharm/version-control-integration.html。 在 PyCharm 中使用插件和外部工具 在 PyCharm 中你可以找到開(kāi)發(fā)所需的幾乎所有功能。如果沒(méi)找到,那么很可能存在一個(gè)插件,向 PyCharm 提供你需要的功能。 例如,它們可以:
例如,IdeaVim 插件向 PyCharm 添加 Vim 模擬。如果你喜歡 Vim,這個(gè)插件可以實(shí)現(xiàn)不錯(cuò)的結(jié)合。 Material Theme UI 插件可將 PyCharm 的外觀(guān)改變?yōu)?Material Design 的外觀(guān):
Vue.js 插件使 PyCharm 支持 Vue.js 項(xiàng)目。Markdown 插件使得在 IDE 內(nèi)可以編輯 Markdown 文件,并實(shí)時(shí)預(yù)覽渲染后的 HTML。 |
|
|