Python | PyCharm用于高效的Python開發(fā)(指南)

PyCharm用于高效的Python開發(fā)(指南)


author :Jahongir Rahmonov
Aug 28, 2019

原文地址:https://realpython.com/pycharm-guide/

本文將介紹:
  • PyCharm 安裝
  • 在 PyCharm 中寫代碼
  • 在 PyCharm 中運行代碼
  • 在 PyCharm 中進(jìn)行代碼 debug 和測試
  • 在 PyCharm 中編輯已有項目
  • 在 PyCharm 中搜索和導(dǎo)航
  • 在 PyCharm 中使用版本控制
  • 在 PyCharm 中使用插件和外部工具
  • 使用 PyCharm Professional 功能,如 Django 支持和科學(xué)模式

本文假設(shè)讀者熟悉 Python 開發(fā),且計算機(jī)中已安裝某個版本的 Python湃望。該教程將使用 Python 3.6 版本韵丑,屏幕截圖和 demo 均來自 macOS 系統(tǒng)励两。由于 PyCharm 可在所有主流平臺上運行沟饥,讀者在其他系統(tǒng)中會看到略微不同的 UI 元素珠叔,可能需要調(diào)整某些命令棺亭。

PyCharm 安裝

本文將使用 PyCharm Community Edition 2019.1 版本虎眨,該版本免費且可在所有主流平臺上使用。只有最后一部分「PyCharm Professional 功能」使用的是 PyCharm Professional Edition 2019.1 版本镶摘。推薦使用 JetBrains Toolbox App 安裝 PyCharm嗽桩。使用該 App,你可以安裝不同的 JetBrains 產(chǎn)品或者同一產(chǎn)品的不同版本凄敢,并在必要的情況下更新碌冶、回滾和輕松刪除任意工具。你還可以在恰當(dāng)?shù)?IDE 及版本中快速打開任意項目涝缝。Toolbox App 安裝指南扑庞,參見 JetBrains 官方文檔:https://www.jetbrains.com/help/pycharm/installation-guide.html#toolbox譬重。該 App 會根據(jù)你的操作系統(tǒng)提供合適的安裝說明。如果它無法無法準(zhǔn)確識別系統(tǒng)嫩挤,你可以在右上角的下拉列表中找到合適的系統(tǒng)害幅。

從中找到 PyCharm Community

安裝成功后,啟動該 app 并接受用戶協(xié)議岂昭。在 Tools 選項下以现,你可以看到一個可用產(chǎn)品列表。從中找到 PyCharm Community约啊,并點擊 Install邑遏。好啦,現(xiàn)在你的機(jī)器上已經(jīng)安裝 PyCharm 了恰矩。如果不想使用 Toolbox app记盒,你可以單獨安裝 PyCharm。啟動 PyCharm外傅,你將看到導(dǎo)入設(shè)置彈窗纪吮。PyCharm 會自動檢測出這是首次安裝,并為你選擇「Do not import settings」選項萎胰。點擊 OK碾盟,之后 PyCharm 會讓你選擇鍵盤映射(keymap scheme)。保留默認(rèn)設(shè)置技竟,點擊右下角的「Next: UI Themes」:

PyCharm

PyCharm 將詢問選擇深色模式 Darcula 還是淺色模式冰肴。你可以選擇自己喜歡的模式,并點擊「Next: Launcher Script」:

PyCharm

本教程將使用深色模式 Darcula榔组。在下一個頁面上熙尉,直接保留默認(rèn)設(shè)置,并點擊「Next: Featured plugins」搓扯,這時 PyCharm 將展示可用插件列表检痰。點擊「Start using PyCharm」,現(xiàn)在你可以寫代碼了锨推!

在 PyCharm 中寫代碼

在 PyCharm 中铅歼,你可以在「項目」中執(zhí)行任意操作。因此爱态,首先你需要創(chuàng)建一個項目谭贪。安裝和打開 PyCharm 后境钟,你會看到歡迎頁面锦担。點擊「Create New Project」,出現(xiàn)「New Project」彈窗:

PyCharm

指定項目位置慨削,打開 Project Interpreter 列表洞渔,選擇創(chuàng)建新的項目解釋器或者使用已有的解釋器套媚。選擇「New environment using」,打開其右方的下拉列表磁椒,選擇 Virtualenv堤瘤、Pipenv 或 Conda。這些工具可以為不同項目單獨創(chuàng)建 Python 環(huán)境浆熔,從而分別保存不同項目所需的依賴項本辐。你可以選擇其中任意一個,本教程使用的是 Virtualenv医增。選擇后慎皱,指定環(huán)境位置,從 Python 解釋器列表中選擇要安裝在系統(tǒng)中的 base interpreter叶骨。通常茫多,保持默認(rèn)設(shè)置即可。下面有兩個可選框:在新環(huán)境中繼承全局包環(huán)境忽刽、令當(dāng)前環(huán)境可以用其它所有項目天揖,兩個都不要選。點擊右下角的「Create」跪帝,創(chuàng)建新項目:

創(chuàng)建新項目

屏幕上出現(xiàn)「Tip of the Day」彈窗今膊,在每次啟動時 PyCharm 通過該彈窗提供 trick。關(guān)掉該彈窗∏干酰現(xiàn)在我們可以開始新的 Python 程序了万细。如果你使用的是 Mac 系統(tǒng),使用 Cmd+N 鍵纸泄;如果你使用的是 Windows 或 Linux 系統(tǒng)赖钞,使用 Alt+Ins 鍵。然后選擇 Python File聘裁。你也可以在菜單中選擇 File → New雪营。將新文件命名為 guess_game.py 并點擊 OK。你將看到如下 PyCharm 窗口:

PyCharm 窗口

至于測試代碼衡便,我們來快速寫一個簡單的猜謎游戲献起,即程序選擇一個數(shù)字讓用戶來猜,在每一次猜測時镣陕,程序?qū)⒏嬖V用戶他猜的數(shù)字比神秘數(shù)字大還是小谴餐,用戶猜中數(shù)字時游戲結(jié)束。以下是該游戲的代碼:

鍵入代碼

直接鍵入上述代碼呆抑,而不是復(fù)制粘貼岂嗓。你會看到如下畫面:

代碼

如上圖所示,PyCharm 提供 Intelligent Coding Assistance 功能鹊碍,可以執(zhí)行代碼補(bǔ)全厌殉、代碼檢查食绿、錯誤高亮顯示和快速修復(fù)建議。比如鍵入 main 并點擊 tab 鍵公罕,PyCharm 會自動補(bǔ)全整個 main 從句器紧。此外,如果你在條件句前忘記鍵入 if楼眷,在該句子最后增添.if 并點擊 Tab 鍵铲汪,PyCharm 將修復(fù)該 if 條件句。該用法同樣適用于 True.while罐柳。這即是 PyCharm 的 Postfix Completion 功能桥状,它可以幫助用戶減少退格鍵使用次數(shù)。

在 PyCharm 中運行代碼

現(xiàn)在你已經(jīng)編碼完成該游戲硝清,可以運行了辅斟。該游戲程序有三種運行方式:

  1. 在 Mac 系統(tǒng)中使用快捷鍵 Ctrl+Shift+R,在 Windows 或 Linux 系統(tǒng)中芦拿,使用快捷鍵 Ctrl+Shift+F10士飒。

  2. 右鍵單擊背景,從菜單中選擇「Run 『guess_game』」蔗崎。

  3. 由于該程序具備main 從句酵幕,你可以點擊main 從句左側(cè)的綠色小箭頭,選擇「Run 『guess_game』」缓苛。

使用以上任一方式運行該程序芳撒,窗口底部會出現(xiàn)終端面板(Terminal pane),顯示你的代碼輸出結(jié)果:

結(jié)果

你可以玩一下這個游戲未桥,看看自己能否猜中數(shù)字笔刹。(專業(yè)建議:從 50 開始猜。)

在 PyCharm 中進(jìn)行代碼 debug

找到神秘數(shù)字了嗎冬耿?如果找到了舌菜,你可能會看到一些奇怪的東西:程序沒有打印出祝賀信息和顯示退出按鈕,而是重新開始了亦镶。這就是 bug 所在日月。要想發(fā)現(xiàn)程序重新開始的原因,你需要 debug缤骨。首先爱咬,點擊第 8 行代碼左側(cè)的空白區(qū)域,設(shè)置斷點:

設(shè)置斷點

斷點即程序運行到這一行時會自動停止绊起,你可以探索斷點處之后的代碼有什么錯誤精拟。接下來,從以下三種方式中選擇一種開始 debug:

  1. 在 Mac 系統(tǒng)中使用 Ctrl+Shift+D 鍵,在 Windows 或 Linux 系統(tǒng)中使用 Shift+Alt+F9 鍵串前。

  2. 右鍵單擊背景,選擇「Debug 『guess_game』」实蔽。

  3. 點擊main從句左側(cè)的綠色小箭頭荡碾,選擇「Debug 『guess_game』」。

之后,你將看到底部出現(xiàn) Debug 窗口:


Debug 窗口

按照下列步驟執(zhí)行程序 debug:

  1. 注意當(dāng)前行被藍(lán)色高亮顯示。

  2. Debug 窗口顯示 random_int 及其值马昙。記錄該數(shù)字竟纳。(上圖中該數(shù)字為 85。)

  3. 點擊 F8 執(zhí)行當(dāng)前代碼行逊移,并執(zhí)行到下一行代碼。如有必要,你也可以使用 F7 跳轉(zhuǎn)到當(dāng)前行內(nèi)的函數(shù)玫膀。隨著你繼續(xù)執(zhí)行語句,變量的變化將自動呈現(xiàn)在 Debugger 窗口爹脾。

  4. 注意 Debugger 標(biāo)簽右側(cè)有一個 Console 標(biāo)簽帖旨。Console 標(biāo)簽和 Debugger 標(biāo)簽相互獨立。你可以在 Console 中與程序進(jìn)行交互灵妨,在 Debugger 中執(zhí)行 debug 動作解阅。

  5. 轉(zhuǎn)向 Console 標(biāo)簽,進(jìn)入猜測過程泌霍。

  6. 鍵入左側(cè) Debugger 標(biāo)簽中顯示的數(shù)字货抄,點擊 Enter 鍵。

  7. 轉(zhuǎn)回 Debugger 標(biāo)簽朱转。

  8. 再次點擊 F8蟹地,計算 if 語句。注意現(xiàn)在你在第 14 行藤为。為什么不是第 11 行呢锈津?因為第 10 行的 if 語句被計算為 False。那么為什么當(dāng)你鍵入數(shù)字后它算出來為 False 了呢凉蜂?

  9. 仔細(xì)看第 10 行琼梆,注意我們在對比 user_guess 和一個錯誤的項。我們應(yīng)該對比用戶猜測的數(shù)字和 random_int窿吩,但此處我們對比的是 randint(從 random 包導(dǎo)入的函數(shù))茎杂。

  10. 將 randint 更改為 random_int,按照同樣的步驟重新開始 debug纫雁。你會發(fā)現(xiàn)煌往,這一次到達(dá)的是第 11 行,第 10 行算出來為 True:

image

恭喜你,bug 被修復(fù)了刽脖!

在 PyCharm 中進(jìn)行代碼測試

不經(jīng)單元測試的應(yīng)用都不可靠羞海。PyCharm 可以幫助你快速舒適地寫單元測試并運行。默認(rèn)情況下曲管,unittest 被用作測試運行器却邓,而 PyCharm 還支持其他測試框架,如 pytest院水、nose腊徙、doctest、tox 和 trial檬某。例如撬腾,你可以按照以下步驟為項目選擇 pytest 測試運行器:

  1. 打開 Settings/Preferences → Tools → Python Integrated Tools 設(shè)置對話框。

  2. 在默認(rèn)測試運行器字段中選擇 pytest恢恼。

  3. 點擊 OK 保存該設(shè)置民傻。

本教程的示例將使用默認(rèn)測試運行器 unittest。在同一個項目中场斑,創(chuàng)建文件 calculator.py饰潜,并將以下 Calculator 類放入該文件:
image

PyCharm 使得為已有代碼創(chuàng)建測試變得輕而易舉。打開 calculator.py 文件和簸,執(zhí)行以下步驟中的任意一個:

  • 在 Mac 系統(tǒng)中使用 Shift+Cmd+T 鍵彭雾,在 Windows 或 Linux 系統(tǒng)中使用 Ctrl+Shift+T。

  • 右鍵單擊該類的背景锁保,選擇「Go To and Test」薯酝。

  • 在主菜單中嗎,選擇 Navigate → Test爽柒。

選擇「Create New Test…」吴菠,得到以下窗口:
image

Target directory、Test file name 和 Test class name 這三項均保留默認(rèn)設(shè)置浩村。選中上圖中兩種需要測試的方法并點擊 OK做葵。好了!PyCharm 自動創(chuàng)建文件 test_calculator.py心墅,并在其中創(chuàng)建了以下 stub test:
image

使用以下方法中的任意一個運行測試:

  • 在 Mac 系統(tǒng)中使用 Ctrl+R 鍵酿矢,在 Windows 或 Linux 系統(tǒng)中使用 Shift+F10 鍵。

  • 右鍵單擊背景怎燥,選擇「Run 『Unittests for test_calculator.py』」瘫筐。

  • 點擊測試類名稱左側(cè)的綠色小箭頭,選擇「Run 『Unittests for test_calculator.py』」铐姚。

你將看到底部出現(xiàn)測試窗口策肝,所有測試均失敗:
image

注意,左側(cè)是測試結(jié)果的層次結(jié)構(gòu)之众,右側(cè)是終端的輸出∽竞粒現(xiàn)在,將代碼更改成以下代碼棺禾,實現(xiàn) test_add:
image

重新運行測試缀蹄,你會看到一個測試通過了,另一個則失敗帘睦。按照如下操作探索不同選項,來展示已通過測試和被忽略測試坦康,按照字母順序?qū)y試進(jìn)行排序竣付,以及按照時長對測試進(jìn)行排序:

image

注意,上圖中的 sleep(0.1) 方法的作用是使其中一個測試變慢滞欠,以便按時長對測試進(jìn)行排序古胆。

在 PyCharm 中編輯已有項目

單文件項目非常適合作為示例,但你通常需要處理較大的項目筛璧。這部分將介紹如何使用 PyCharm 處理較大項目逸绎。為了探索 PyCharm 以項目為中心的特征,你將使用 Alcazar web 框架(該框架用于學(xué)習(xí)目的)夭谤。在本地復(fù)制該 repo(地址:https://realpython.com/optins/view/alcazar-web-framework/)棺牧。當(dāng)你在本地已有項目時,使用以下方法中的任意一個在 PyCharm 中打開項目:

  • 在主菜單中點擊 File → Open朗儒。

  • 在歡迎頁面點擊 Open颊乘。

之后,在計算機(jī)中找到包含該項目的文件夾醉锄,并打開乏悄。如果該項目包含虛擬環(huán)境,PyCharm 將自動使用該虛擬環(huán)境恳不,并將它作為項目解釋器檩小。如果你需要配置不同的虛擬環(huán)境 virtualenv,在 Mac 上打開 Preferences烟勋,或在 Windows 或 Linux 系統(tǒng)中使用 Ctrl+Alt+S 打開 Settings规求,找到 Project: ProjectName。打開下拉列表卵惦,選擇 Project Interpreter:
image

從下拉列表中選擇 virtualenv颓哮。如果沒有要選擇的項,則點擊下拉列表右方的設(shè)置按鈕選擇 Add…鸵荠。其余步驟和創(chuàng)建新項目的步驟相同冕茅。

在 PyCharm 中搜索和導(dǎo)航

在大項目中,我們很難記住每個事物的位置,因此快速導(dǎo)航和搜索非常重要姨伤。PyCharm 可以提供這些功能哨坪。接下來,我們使用上一節(jié)中打開的項目乍楚,實踐以下快捷鍵:

  • 在當(dāng)前文件中搜索代碼段:在 Mac 系統(tǒng)中使用 Cmd+F 鍵当编,在 Windows 或 Linux 系統(tǒng)中使用 Ctrl+F 鍵。

  • 在整個項目中搜索代碼段:在 Mac 系統(tǒng)中使用 Cmd+Shift+F 鍵徒溪,在 Windows 或 Linux 系統(tǒng)中使用 Ctrl+Shift+F 鍵忿偷。

  • 搜索類:在 Mac 系統(tǒng)中使用 Cmd+O 鍵,在 Windows 或 Linux 系統(tǒng)中使用 Ctrl+N 鍵臊泌。

  • 搜索文件:在 Mac 系統(tǒng)中使用 Cmd+Shift+O 鍵鲤桥,在 Windows 或 Linux 系統(tǒng)中使用 Ctrl+Shift+N 鍵。

  • 如果你不知道要搜索的是文件渠概、類還是代碼段茶凳,則搜索全部:按兩次 Shift 鍵。

導(dǎo)航可使用以下快捷鍵:

  • 前往變量的聲明:在 Mac 系統(tǒng)中使用 Cmd 鍵播揪,在 Windows 或 Linux 系統(tǒng)中使用 Ctrl 鍵贮喧,然后單擊變量。

  • 尋找類猪狈、方法或文件的用法:使用 Alt+F7 鍵箱沦。

  • 查看近期更改:使用 Shift+Alt+C 鍵,或者在主菜單中點擊 View → Recent Changes雇庙。

  • 查看近期文件:在 Mac 系統(tǒng)中使用 Cmd+E 鍵饱普,在 Windows 或 Linux 系統(tǒng)中使用 Ctrl+E 鍵,或者在主菜單中點擊 View → Recent Files状共。

  • 多次跳轉(zhuǎn)后在導(dǎo)航歷史中前進(jìn)和后退:在 Mac 系統(tǒng)中使用 Cmd+[ / Cmd+] 鍵套耕,在 Windows 或 Linux 系統(tǒng)中使用 Ctrl+Alt+Left / Ctrl+Alt+Right 鍵。

更多細(xì)節(jié)峡继,參見官方文檔:https://www.jetbrains.com/help/pycharm/tutorial-exploring-navigation-and-search.html冯袍。

PyCharm 中的版本控制

版本控制系統(tǒng)(如 Git 和 Mercurial)是現(xiàn)代軟件開發(fā)世界中最重要的工具之一。因此碾牌,IDE 必須支持版本控制康愤。PyCharm 在這方面做得很好,它集成了大量流行的版本控制系統(tǒng)舶吗,如 Git(和 Github (https://github.com/))征冷、Mercurial、Perforce 和 Subversion誓琼。注:以下示例中使用的版本控制系統(tǒng)為 Git检激。

配置版本控制系統(tǒng)(VCS)

要想實現(xiàn) VCS 集成肴捉,你需要在頂部菜單點擊 VCS → VCS Operations Popup…,或者在 Mac 系統(tǒng)中使用 Ctrl+V 鍵叔收,在 Windows 或 Linux 系統(tǒng)中使用 Alt+` 鍵齿穗。選擇 Enable Version Control Integration…,你將看到以下窗口:
image

從下拉列表中選擇 Git饺律,點擊 OK窃页,這樣你就為項目設(shè)置好了 VCS。(注意复濒,如果你打開的已有項目已經(jīng)具備版本控制系統(tǒng)脖卖,PyCharm 將會發(fā)現(xiàn)并自動使用該版本控制系統(tǒng)。)這時如果你前往 VCS Operations Popup…巧颈,你會發(fā)現(xiàn)一個不同的彈窗畦木,它具備選項 git add、git stash洛二、git branch馋劈、git commit攻锰、git push 等等:
image

如果你找不到所需要的選項晾嘶,你可以在頂部菜單中點擊 VCS,選擇 Git娶吞,在這里你可以創(chuàng)建和查看 pull request垒迂。提交和沖突處理這是 PyCharm 中 VCS 集成的兩大特征,我個人經(jīng)常使用并且非常喜歡妒蛇。假如你完成了工作机断,打算提交,前往 VCS → VCS Operations Popup… → Commit…绣夺,或者在 Mac 系統(tǒng)中使用 Cmd+K 鍵吏奸,在 Windows 或 Linux 系統(tǒng)中使用 Ctrl+K 鍵。你將看到如下窗口:

image

在該窗口中陶耍,你可以:

  • 選擇要提交的文件

  • 寫下提交信息

  • 在提交前執(zhí)行各項檢查

  • 查看更改

  • 點擊右下角 Commit 按鈕旁邊的箭頭奋蔚,選擇 Commit and Push…,從而一次性完成提交和 push烈钞。

是不是感覺很神奇很迅速泊碑?特別是如果你以前經(jīng)常通過命令行手動執(zhí)行這些任務(wù)時。團(tuán)隊合作中會出現(xiàn)合并沖突(merge conflict)毯欣。當(dāng)一個人對你正在處理的文件提交更改時馒过,你們二人更改了同一行導(dǎo)致更改重疊,這時 VCS 無法決定選擇你的更改還是隊友的更改酗钞。那么你可以使用以下箭頭和符號來解決這個問題:
image

看起來很奇怪腹忽,我們很難分辨應(yīng)該刪除哪些更改来累、保留哪些更改。不要怕留凭,PyCharm 來了佃扼!它可以用更好、更簡潔的方法解決沖突蔼夜。在頂部菜單中前往 VCS兼耀,選擇 Git,然后選擇 Resolve conflicts…求冷。選擇存在沖突的文件瘤运,點擊 Merge,出現(xiàn)以下窗口:
image

在左側(cè)列中匠题,你可以查看自己做的更改拯坟。在右側(cè)列中,可以查看隊友做的更改韭山。而中間列則顯示結(jié)果郁季。存在沖突的代碼行被高亮顯示,你可以在它們旁邊看到 X 和 >>/<<钱磅。點擊箭頭表示接受更改梦裂,點擊 X 則表示拒絕更改。解決所有沖突后盖淡,點擊 Apply 按鈕:

image

在上圖中年柠,對于第一個沖突行,作者選擇拒絕自己的更改褪迟,接受隊友的更改冗恨。而在第二個沖突行中,作者接受了自己的更改味赃,拒絕了隊友的更改掀抹。使用 PyCharm 中的 VCS 集成還可以執(zhí)行很多操作。詳情參見 https://www.jetbrains.com/help/pycharm/version-control-integration.html心俗。

在 PyCharm 中使用插件和外部工具

在 PyCharm 中你可以找到開發(fā)所需的幾乎所有功能傲武。如果沒找到,那么很可能存在一個插件另凌,向 PyCharm 提供你需要的功能谱轨。例如,它們可以:

  • 添加多語言和多框架支持

  • 使用快捷鍵提示(shortcut hint)吠谢、文件監(jiān)視器(file watcher)等提升你的生產(chǎn)效率

  • 利用代碼練習(xí)土童,幫助你學(xué)習(xí)新的編程語言

例如,IdeaVim 插件向 PyCharm 添加 Vim 模擬工坊。如果你喜歡 Vim献汗,這個插件可以實現(xiàn)不錯的結(jié)合敢订。Material Theme UI 插件可將 PyCharm 的外觀改變?yōu)?Material Design 的外觀:
image

Vue.js 插件使 PyCharm 支持 Vue.js 項目。Markdown 插件使得在 IDE 內(nèi)可以編輯 Markdown 文件罢吃,并實時預(yù)覽渲染后的 HTML楚午。在 Mac 系統(tǒng)上點擊 Preferences → Plugins,在 Windows 或 Linux 系統(tǒng)中點擊 Settings → Plugins尿招,你可以在 Marketplace 標(biāo)簽下找到和安裝所有可用插件:
image

如果仍然沒找到所需插件矾柜,你甚至可以自己開發(fā)一個。如果你找不到合適的插件就谜,又不想自己開發(fā)怪蔑,因為 PyPI 上有可用的包,你可以將這個包作為外部工具添加到 PyCharm丧荐。以代碼分析器 Flake8 為例缆瓣。首先,在所選 Terminal app 中鍵入 pip install flake8虹统,從而在虛擬環(huán)境中安裝 Flake8弓坞。或者也可以使用 PyCharm 集成的 Terminal:
image

在 Mac 系統(tǒng)上點擊 Preferences → Tools车荔,在 Windows 或 Linux 系統(tǒng)中點擊 Settings → Tools渡冻,選擇 External Tools。然后點擊底部 (1) 處的 + 按鈕夸赫。在彈出的窗口中菩帝,輸入細(xì)節(jié)并在兩個窗口中點擊 OK咖城,如下圖所示:
image

上圖中茬腿,Program (2) 指 Flake8,你可以在虛擬環(huán)境文件夾(bin)中找到它宜雀。Arguments (3) 表示你想用 Flake8 分析的文件切平。Working directory 表示項目目錄。你可以把這里所有項的絕對路徑寫死辐董,但這就意味著你無法在其他項目中使用該外部工具悴品,只能在一個項目中針對一個文件使用該工具。因此你需要使用 Macros简烘。它是name格式的變量苔严,根據(jù)語境而變化。例如孤澎,當(dāng)你編輯 first.py 時届氢,FileName 為 first.py,當(dāng)你編輯 second.py 時覆旭,FileName 為 second.py退子。你可以查看它們的列表岖妄,點擊 Insert Macro… 按鈕將其中一個插入。此處你使用了 macros寂祥,它們的值會根據(jù)你目前處理的項目而改變荐虐,F(xiàn)lake8 將繼續(xù)準(zhǔn)確執(zhí)行其工作。要想使用它丸凭,你需要創(chuàng)建文件 example.py福扬,并在其中寫入以下代碼:

image

上述代碼故意破壞了 Flake8 的一些規(guī)則。右鍵單擊文件背景惜犀,選擇 External Tools → Flake8忧换。Flake8 分析結(jié)果將出現(xiàn)在窗口底部:
image

為了使效果更好,你可以為其添加快捷鍵向拆。在 Mac 系統(tǒng)中選擇 Preferences亚茬,在 Windows 或 Linux 系統(tǒng)中選擇 Settings。然后浓恳,點擊 Keymap → External Tools → External Tools刹缝。雙擊 Flake8,選擇 Add Keyboard Shortcut颈将,出現(xiàn)以下窗口:
image

上圖中梢夯,快捷鍵是 Ctrl+Alt+A(本教程使用該快捷鍵)。你可以在文本框中添加喜歡的快捷鍵晴圾,然后在兩個窗口中點擊 OK颂砸。然后,你就可以用該快捷鍵死姚,在 Flake8 的幫助下分析目前在處理的文件了人乓。

PyCharm Professional 功能

PyCharm Professional 是 PyCharm 的付費版本,具備更多開箱即用的功能和集成都毒。這部分將概覽其主要功能色罚,以及官方文檔鏈接(其中詳細(xì)介紹了每一項功能)。記住账劲,以下功能在 PyCharm Community 版本中均不可用戳护。

Django 支持

Django 是最流行和最受喜愛的 Python web 框架,PyCharm 對 Django 提供廣泛的支持瀑焦。要確保對 Django 的支持腌且,需要執(zhí)行以下步驟:

  1. 在 Mac 系統(tǒng)中打開 Preferences,在 Windows 或 Linux 系統(tǒng)中打開 Settings榛瓮。

  2. 選擇 Languages and Frameworks铺董。

  3. 選擇 Django。

  4. 檢查復(fù)選框 Enable Django support榆芦。

  5. 應(yīng)用更改柄粹。

現(xiàn)在確保了對 Django 的支持喘鸟,你在 PyCharm 中的 Django 開發(fā)之旅將輕松很多。具體而言在創(chuàng)建項目時驻右,你會得到一個專用的 Django 項目類型什黑。這表示,當(dāng)你選擇該類型時堪夭,你將擁有所有必要文件和設(shè)置愕把。這等同于使用 django-admin startproject mysite。你也可以在 PyCharm 內(nèi)直接運行 manage.py 命令森爽。目前支持的 Django 模板恨豁,包括以下一些:

  • 語法和錯誤高亮顯示

  • 代碼補(bǔ)全

  • 導(dǎo)航

  • block 名稱補(bǔ)全

  • 自定義標(biāo)簽和過濾器補(bǔ)全

  • 標(biāo)簽和過濾器的快速文檔

  • 模板 debug 能力

除此之外,我們還可以在其他 Django 部分(如視圖爬迟、URL 和模型)中執(zhí)行代碼補(bǔ)全橘蜜、對 Django ORM 提供代碼追蹤支持(code insight support)、對 Django 模型提供模型依賴項關(guān)系圖付呕。更多細(xì)節(jié)计福,參見官方文檔:https://www.jetbrains.com/help/pycharm/django-support7.html

數(shù)據(jù)庫支持

現(xiàn)代數(shù)據(jù)庫開發(fā)是一個復(fù)雜的任務(wù)徽职,需要多個支持系統(tǒng)和工作流象颖。這也是 JetBrains 開發(fā)獨立 IDE DataGrip 的原因。DataGrip 是獨立于 PyCharm 的產(chǎn)品姆钉,二者的應(yīng)用場景和授權(quán)都不相同说订。但幸運的是,通過 Database tools and SQL 插件(該插件默認(rèn)開啟)潮瓶,PyCharm 可以支持 DataGrip 中的所有特性陶冷。在該插件的幫助下,你可以查詢筋讨、創(chuàng)建和管理數(shù)據(jù)庫埃叭,不管數(shù)據(jù)庫在本地摸恍、服務(wù)器悉罕,還是在云端。該插件支持 MySQL立镶、PostgreSQL壁袄、Microsoft SQL Server、SQLite媚媒、MariaDB嗜逻、Oracle、Apache Cassandra 等缭召。關(guān)于該插件的更多用途栈顷,請查看文檔:https://www.jetbrains.com/help/pycharm/relational-databases.html逆日。

線程并發(fā)可視化(Thread Concurrency Visualization)

Django Channels、asyncio 和近期框架(如 Starlette (https://www.starlette.io/))表明異步 Python 編程正逐漸成為趨勢萄凤。異步編程具備很多好處室抽,但很難寫,也很難 debug靡努。在此類案例中坪圾,Thread Concurrency Visualization 就是醫(yī)生,幫助你全面管理多線程應(yīng)用并進(jìn)行優(yōu)化惑朦。更多細(xì)節(jié)兽泄,參見文檔:https://www.jetbrains.com/help/pycharm/thread-concurrency-visualization.html

Profiler

說到優(yōu)化漾月,profiling 是另一種代碼優(yōu)化方法病梢。profiling 可以幫助你查看代碼的哪一部分占用了最多的執(zhí)行時間。profiler 運行的優(yōu)先級如下:1. vmprof2. yappi3. cProfile如果你沒有安裝 vmprof 或 yappi梁肿,則運行標(biāo)準(zhǔn) cProfile飘千。更多細(xì)節(jié),參見:https://www.jetbrains.com/help/pycharm/profiler.html栈雳。

科學(xué)模式

Python 不僅是通用和 web 編程語言护奈,由于 NumPy、SciPy哥纫、scikit-learn霉旗、Matplotlib、Jupyter 等庫和工具的加持蛀骇,Python 成為數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)領(lǐng)域的最優(yōu)工具厌秒。有了這些強(qiáng)大工具,你還需要一個強(qiáng)大的 IDE 來支持這些庫所具備的繪圖擅憔、分析等所有功能鸵闪。關(guān)于科學(xué)模式的更多詳情,參見 https://www.jetbrains.com/help/pycharm/matplotlib-support.html暑诸。

遠(yuǎn)程開發(fā)

很多應(yīng)用出現(xiàn) bug 的一個常見原因是蚌讼,開發(fā)環(huán)境和生產(chǎn)環(huán)境不同。盡管在大多數(shù)情況下个榕,開發(fā)時完美復(fù)制生產(chǎn)環(huán)境并不現(xiàn)實篡石,但力求實現(xiàn)完美復(fù)刻是值得追尋的目標(biāo)。在 PyCharm 的幫助下西采,你可以使用另一臺計算機(jī)(如 Linux VM)上的解釋器對應(yīng)用進(jìn)行 debug凰萨。這樣,你就可以擁有與生產(chǎn)環(huán)境一樣的解釋器了,從而避免很多因開發(fā)環(huán)境和生產(chǎn)環(huán)境差異導(dǎo)致的 bug胖眷。詳情參見:https://www.jetbrains.com/help/pycharm/remote-debugging-with-product.html武通。

結(jié)論

PyCharm 是最好的 Python 開發(fā) IDE 之一。它提供大量優(yōu)勢珊搀,幫助執(zhí)行例行任務(wù)厅须,從而節(jié)約大量時間。學(xué)完本教程食棕,現(xiàn)在你知道如何利用 PyCharm 提高生產(chǎn)效率了嗎朗和?

注:

1、撰寫內(nèi)容來源于個人收集的文獻(xiàn)簿晓,屬學(xué)術(shù)探究范疇眶拉。
2、版權(quán)屬于時進(jìn)軍個人憔儿,轉(zhuǎn)載需注明忆植。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市谒臼,隨后出現(xiàn)的幾起案子朝刊,更是在濱河造成了極大的恐慌,老刑警劉巖蜈缤,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拾氓,死亡現(xiàn)場離奇詭異,居然都是意外死亡底哥,警方通過查閱死者的電腦和手機(jī)咙鞍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來趾徽,“玉大人续滋,你說我怎么就攤上這事》跄蹋” “怎么了疲酌?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長了袁。 經(jīng)常有香客問我朗恳,道長,這世上最難降的妖魔是什么早像? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任僻肖,我火速辦了婚禮,結(jié)果婚禮上卢鹦,老公的妹妹穿的比我還像新娘转唉。我一直安慰自己,他們只是感情好捉蚤,可當(dāng)我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布厨相。 她就那樣靜靜地躺著,像睡著了一般熬粗。 火紅的嫁衣襯著肌膚如雪搀玖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天驻呐,我揣著相機(jī)與錄音灌诅,去河邊找鬼。 笑死含末,一個胖子當(dāng)著我的面吹牛猜拾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播佣盒,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼挎袜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了肥惭?” 一聲冷哼從身側(cè)響起盯仪,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蜜葱,沒想到半個月后全景,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡牵囤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年蚪燕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奔浅。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡馆纳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出汹桦,到底是詐尸還是另有隱情鲁驶,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布舞骆,位于F島的核電站钥弯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏督禽。R本人自食惡果不足惜脆霎,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望狈惫。 院中可真熱鬧睛蛛,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至客冈,卻和暖如春旭从,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背场仲。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工和悦, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人渠缕。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓鸽素,卻偏偏與公主長得像,于是被迫代替她去往敵國和親褐健。 傳聞我的和親對象是個殘疾皇子付鹿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 曾經(jīng)無數(shù)次幻想著,某一天的自己成了達(dá)官貴人蚜迅,商業(yè)精英舵匾,
    我就是這樣的男人閱讀 174評論 0 0
  • 歲月是不是偷偷眷戀了你 都說歲月消的玉人碎,在時間面前谁不,很多人最終都免不了變得蒼老坐梯。但是有些人,歲月并沒有過分的增...
    熙熙唯閱讀 392評論 0 0
  • 不知第一個把時光比作流水的人是誰刹帕,只記得乍見之下吵血,竟兀自愣愣地出神,如果時間是一條寬闊的河流偷溺,那么蹋辅,我們每個人都是...
    馬布婷閱讀 233評論 0 0
  • 男人對我說侦另,至少你得有個閨蜜也是好的呀!可是尉共,為什么我就是沒有閨蜜呢褒傅? 在這個世界上飄飄蕩蕩三十幾年了,容易相信人...
    曲小虎閱讀 740評論 0 1
  • 一天我想和面烙餅袄友〉钔校看見墊在袋子下面的報紙,有許多小眼和碎片剧蚣。 我拿給先生看支竹,“這是什么?" 先生從手機(jī)上抬頭看看旋廷,...
    花香_ca9c閱讀 381評論 0 0