大家都用什么開發工具寫python
前提:用來做數據處理和相關的系統開發
剛學python時,面對簡陋的官方版idle和一大堆開發平臺和發行版,不知道究竟如何下手。在進行多方嘗試后,我最后的選擇是Anaconda + Pycharm,用anaconda集成的ipython做工作臺,做一些分析和小段程序調試的工作,用Pycharm寫相應腳本和程序包的開發。這兩個工具都是跨平臺的,也都有免費版本。
具體來說Anaconda集成了幾乎所有我需要的包庫,包含了我整個工作流程,做數據分析的pandas\scipy\numpy、繪圖的matplotlib、讀寫Excel文檔的xlrd/xlwt,鏈接SQL數據庫的SQLalchemy、機器學習框架sklearn等。對于Anaconda集成的兩個工作平臺,Spyder——一個類似于Matlab和Rstudio的IDE,是專注于面向數據的分析的,因為其特點也主要是數據區的存在,可以即時知道變量值的變化;Ipython——一個基于cell的shell界面,可以理解為python自帶shell的增強版,它將程序分成一塊一塊的cell,每個cell可以包含多條語句,可以單獨調試運行,并將結果保存在內存中,cell之間可以相互調用,并保持一定的相互獨立。
可以說有了anaconda自帶的這兩個工具,足夠做數據處理相關的工作了(本身anaconda就是一個為了數據科學而誕生的發行版),但如果涉及到腳本程序和包的開發,感覺spyder還是有點弱,在試過IDE,代碼編輯器(比如visual code、sublime等)+插件,這兩種方案后,我最后選擇了集成度更高的成熟IDE——Pycharm替換spyder作為主要的開發平臺,看我頭像也可以知道我是一個噴氣大腦的死忠,他們家的IDE真的很好用~理由如下:
1、首先作為學生,可以通過edu郵箱申請到Jetbrains全家桶,即便無法獲取授權,pycharm的community版本免費并且功能足夠
2、對于pycharm,可以方便快捷地切換python不同版本的解釋器,甚至可以安裝相同版本的python解釋器配置不同的開發環境,這可以解決有些包之間沖突的情況,也可以針對有些框架按需裝包;并且pycharm內置包管理,可以免去pip或者conda方式管理包。
3、pycharm這個IDE的顏色方案、拼寫補全、函數聯想、函數跳轉源代碼、斷點調試及debug等功能都讓我用的十分順手。
總之我現在的工作流程就是,先用對我需要的功能進行設計,而后在ipython界面下設計調試每個功能模塊,調試成功后放到pycharm中組合起來,寫成腳本文件,最后用pycharm做調試形成成品。
2017、10、25 補充:
Pycharm作為IDE還有兩個功能值得使用,一個是可以結合unitest包做我們開發模塊的單元測試,另一個就是與svn、git等版本工具合作進行我們程序的版本控制,此外,在最新版的pycahrm當中,除了左側折疊顯示程序層次,下方也有我們當前光標所在位置對應的層次,并可以方便進行跳轉。
總之,用pycharm寫python真是越用越順手~
python為什么突然火起來
第1階段:云計算火熱的是12~14年,大批創業公司和巨頭涌進云計算領域,大家都在做IAAS,著名的云計算開源平臺OpenStack 就是基于Python 開發的,為此出現了不少Python崗位。
第2階段:“大眾創新,萬眾創業”喊得響的是14~15年,滿大街都是創業者。O2O、P2P產品層出不窮,什么語言適合**搭建原型?當然是Python,它的開發速度一頂仨。
第3階段:人工智能發展得如火如荼是在16~17年。這兩年里,人工智能不再是概念,而人工智能、機器學習的首選語言就是Python。
Python在網絡爬蟲、數據分析、AI、機器學習、Web開發、金融、運維、測試等領域都有不俗的表現,從來沒有哪種語言可以同時在這么多領域扎根。
Python還是一門兼具簡單與功能強大的編程語言,它專注于如何解決問題、自由開放的社區環境以及豐富的第三方庫,無需浪費時間去造輪子,各種Web框架、爬蟲框架、數據分析框架、機器學習框架應有盡有,拿來即用。