Python主流IDE對比:Eric VS. PyCharm

來源:互聯網
上載者:User

標籤:開發

IDE, 全稱是Integrated Development Environment,翻譯過來就是整合式開發環境。Python的開發從2010年5月算起,不知不覺中,到現在已經是第七個年頭。

這六年裡,捨得最常用的IDE是Eric6(一開始是5.x版本),也試用過圈內聞名的PyCharm、WingIDE和Eclipse(+PyDev外掛程式),算是有些心得。今天,著重對Eric6和PyCharm 2016.3作一下簡單的評測。

顏值

Eric6是基於PyQt開發的,程式運行甚至只用一個BAT檔案來調用,介面相對而言略醜。PyCharm基於Java開發,內建的主題很漂亮,風格比較統一。在顏值這一點上,無疑是PyCharm勝出。

順帶提一下WingIDE,雖然它也帶了很多款主題,但整個視窗中有些部位是不受主題控制的。舉個栗子,當你選擇深色的主題時,視窗左下角往往會有一塊白色的控制項,忒刺眼。

速度和記憶體開銷

從啟動到開啟一個項目,捨得掐著秒錶測試了這幾款IDE,資料如下:

  • 最慢的是PyCharm,平均需要18-20秒左右。就算把外掛程式幹掉只剩兩個,再將Xms和Xmx參數適當調整,跑出最快的成績是16秒5;
  • Eric平均只用11秒;
  • 最快的是WingIDE, 只用7秒;

記憶體開銷上,PyCharm是大戶,動輒就是吃掉你300-400MB的記憶體。機子記憶體小的童鞋要當心了!

UI和資源編譯

開發過程中難免要對UI和資源檔進行調整,所以IDE中自然需要將這兩項的編譯工作整合進來。

Eric6是原生支援UI和資源檔編譯的,它的開發人員早就想到了我們需要這項功能。

PyCharm作為一個專業的Python IDE,在這方面無疑略顯不足。要實現UI和資源編譯,你必須手工在外部工具設定中添加它們(具體操作請自己去問度娘),雖然設定好之後和Eric6比也沒啥區別,但總是開發人員欠考慮。

不過PyCharm這個外部工具的設計還是值得讚賞的,你可以直接把打包命令(我通常用cx_freeze)直接整合進去,這樣就方便多了。

智慧縮排

在Python的文法中,縮排是非常重要的一項。開發過程中,縮排若能更智能化一點,自然寫代碼的速度也會快一些。

在這方面,做得最優秀的是Eric6。它的牛x之處在於,無論你的游標鍵在哪個位置,只要你按TAB鍵,程式就會根據上面的代碼選擇合適的縮排位置。

PyCharm亦有類似的設計。它的智慧縮排操作英文名叫Emacs Indent(建議將快速鍵TAB設定給它),國內的漢化莫名其妙地翻譯成了“宏選項卡”,這一定是外行人乾的。

但Emacs Indent在處理整塊縮排的時候略顯無力,當我們要將整塊代碼往前移的時候,只能使用另一項叫作“取消縮排內容”的操作,而Eric6隻要一個TAB鍵就足夠了。

字型縮放

雖然我們可以在設定中給IDE的編輯器設一個特定的字型大小,但在實際開發中,還是免不了要適當縮放字型。尤其是大螢幕,字型適當放大一些,眼睛不至於那麼遭罪。

字型的縮放這兩款IDE都有。只不過,Eric6是早已設定好快速鍵的(用Ctrl+=/-,或Ctrl+滾輪),而在PyCharm中,你必須手動設定這個快速鍵。

這一輪,算打成平手好了。

自動補空格

PEP8的規範要求在逗號、運算子號之類的內容後面加一個空格,這一點Eric做得不錯,在你輸入一個逗號後,它會自動給你補一個空格,而PyCharm顯然考慮得沒有那麼周到。你不得不手動一個個敲空格,或留著到最後使用Reformat File功能來糾正。

代碼自動補全和代碼正常化

兩款IDE的代碼自動補全做得都挺好。硬要挑出一個更好的來,我會把票投給PyCharm, 它的智能化程度似乎(我沒法給出更精確的評價,建議自行體會)更高一些。

PyCharm除了自動補全,還會用類似拼字檢查的方式檢查你的代碼,當你輸入的代碼不符合PEP8之類的規範時,PyCharm會適時提醒並對該部分代碼作出標記。這個功能確實很貼心,我有理由相信用PyCharm會協助我們將代碼寫得更加規範。

此外,PyCharm還會對當前方法下所用的變數進行檢查,當有變數出現未使用、不一致、輸入錯誤等情形時,PyCharm亦會將其一一標出,讓你一目瞭然。

版本控制

版本控制也可算是IDE的標配了吧!Eric6和PyCharm都有版本控制的模組,不過捨得認為,PyCharm在這一塊做得更細一些,和GibHub結合得很好,捨得用得很趁手。

資料庫連接、查看

這項功能只能算是可選配置了。兩款IDE都帶有資料庫內容瀏覽的功能,它的方便之處在於,我們要查看資料庫中某項資料時,可以不必開啟專用的資料庫管理工具(比如SQLite的SQLite Expert, PostGreSQL的PG Admin,MySQL的PHPMyAdmin等),直接在IDE內查看。

Eric6內建一個內建的SQL瀏覽器,介面相對簡陋,而且每次開啟都必須重新設定,不夠方便。

PyCharm是通過Database Tools and SQL這款外掛程式來實現資料庫連接和查看的功能,用來臨時查看一下資料是足夠了。

書籤

在開發過程中,我們經常需要在一個文檔中不同的位置間切換,此時書籤功能會給我們帶來很大的便利。

兩款IDE都有書籤功能,PyCharm做得更好一點,它的書籤不會因為你退出程式而清除。而Eric6則會在你每次退出程式時,清空你的書籤設定。

TODO

捨得在堆代碼的時候,想到一些下一步要完善的功能之類的內容時,往往會在文檔中插入一行,行首寫上“# todo,”,然後把當時的想法寫進去。這樣日後就能根據todo的標記和內容來逐漸完善自己所開發的軟體。

兩款IDE都支援Todo功能,它們會把你在當前項目中的每一行標有todo的內容都搜集起來,以供你隨時查看。只是在功能的完善性上,略有差距:

  • PyCharm在你輸入“# todo,”的時候就將這一行進行高亮處理,讓它變得非常醒目,Eric6預設是不會對“# todo,”作高亮處理的;
  • PyCharm的todo支援大小寫,Eric6預設只支援大寫,要想支援不同的格式,需要單獨設定;

相比之下,PyCharm以微弱的優勢勝出。

協助文檔

Eric6內建一個WebKit核心的協助瀏覽器,當你設定好Python/PyQt/Pyside/Qt等協助文檔的路徑後,可以在協助菜單中直接點擊這些文檔的連結,Eric6就會調用協助瀏覽器來顯示這些文檔。

PyCharm雖然有一個外部文檔的設定和對應的功能表命令,但功能實在太弱比,應該好好完善一下才是。

另外PyCharm雖然提供了一個Search EveryWhere的“強大”功能,但由於搜尋結果匹配往往不能盡如人意,使得此功能形如雞肋。

結語

通過上面的比較和分析,相信大家自會得出自己的答案。簡單說一下捨得的觀點:

  • 如果你是個顏控,請選擇PyCharm;
  • 如果你的電腦配置略低(尤其是記憶體),跑PyCharm感覺慢、卡,請選擇Eric6;
  • 大多數功能,這兩款IDE都大同小異。捨得最介意的是,PyCharm沒法在逗號後居然不能自動補空格,希望開發人員能在後續的版本中進一步完善;
  • 至於很多仍在使用非IDE(比如用vim、emacs、sublime text之類的編輯器)的童鞋,捨得的建議是,IDE可以讓你的開發效率更高。看上去你用這些編輯器也能完成大部分工作,但別忘了,你費盡九牛二虎之力搞定各種外掛程式的同時,IDE上這些功能早就已經非常成熟了,何必自己再去造輪子呢?

 

本文著作權歸捨得學苑所有,歡迎轉載,轉載請註明作者和出處。謝謝!
捨得
首發:捨得新浪部落格

Python主流IDE對比:Eric VS. PyCharm

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.