沒想到2013年這麼快就過去了,但是2013留給我們的卻是網際網路上很多優秀的文章、教程、經驗以及開源專案。現在,就讓我們來回顧一下2013年有關於Python的精彩的開發文章吧。趁著這些文章還沒有過時,Python開發者們趕緊看過來了。
下面是有關於Python新聞,好文以及資源的列表。
乾貨十足,希望你喜歡!
好了廢話不多說了,讓我們趕緊切入正題…
新聞公告
讓我們首先來回顧一下Python社群在2013年的新聞公告。
1. Heroku now supports different Python runtimes.
Heroku現在支援不同版本的Python環境了。只需要在runtime.txt中加入你所需要的Python版本資訊,就能實現這個功能了,非常簡單。預設的Python版本是64bit CPython 2.7.4。
(譯者注:Heroku是一個PaaS平臺,現在率屬於Salesforce,這貨現在支援Ruby,Java,Node.js,Python,Clojure,Scala。譯者之前稍微玩過,不過感覺沒有Redhat的Openshift好用,功能也沒有Openshift強大,與其類似的概念是Google的Google App Engine,Redhat的Openshfit,新浪的Sina App Engine,百度的Baidu App Engine)
這本書是由Django愛好者Daniel Greenfeld和Audrey Roy共同編寫的。這本書對於中級的Django開發者來說十分有用,包含了許多Django 1.5的最佳實踐。
(譯者注:相信玩Python的人大都知道或者玩過Django,譯者覺得Django對於Web開發者來說的確足夠敏捷,許多網站應該具有的功能Django都已經預設自帶了。目前基於Django搭建的有大名鼎鼎的Instagram還有云計算領域著名的OpenStack專案)
3. Codeq: Static Analysis for Python Projects
這是一個非常酷的工具,能夠對Python工程進行靜態程式碼分析。還等什麼,趕緊登陸github來看看吧。目測該工程現在是以PEP8檢查作為標準。
(譯者注:該網站現在貌似不能訪問,好悲劇:-(。不過譯者可以推薦另一個靜態程式碼分析工具叫SonarQube,譯者用下來感覺非常不錯。靜態程式碼分析能夠幫助開發者找出專案裡面十分弱智的錯誤,最好將靜態程式碼分析引入專案構建的過程中去,持續地去分析專案中的程式碼)
是不是錯過了PyCon US 2013?不要煩惱了,所有的演講都被錄了下來,現在都放到了網上,大家都可以看到。非常感謝視訊音訊組和PyCon US組織者的辛勤勞動。
5. PythonMonk
這是學習Python的一系列免費的互動式的教程。非常不錯!
6. Asyncio (Tulip) Merge Into Python 3.4
(譯者注:Asyncio是Python3.4引入的一個支援非同步IO的模組,Tulip是它的開發代號,該模組幾乎是純python實現的。利用python3.3+的 yield from 特性,可以輕鬆實現同步語法的非同步IO,不必使用回撥,譯者網上搜了下,該模組的效能似乎比node.js還要好。)
精彩文章
1. Will Scientists ever move to Python 3?
科學家們會開始轉向支援Python 3了嗎?這篇文章裡面作者討論了這個不可能的任務:將Python 3引入到整個科學屆社群。
(譯者注:Python 3已經發布了好幾年了,但是現在的事實就是Python 3還不足夠穩定,還有一坨package沒有完全遷移到Python 3上來)
2.A guide to Python frameworks for Hadoop
Hadoop上的Python框架指南。現在每個人都在討論大資料,而Hadoop就是處理大資料集的最常用的工具。這篇文章將會向你詳細介紹Hadoop上的流行的Python框架。
(譯者注:這篇文章是寫在cloudera的blog上的,cloudera目前來講應該是大資料領域做得比較成功的startup,值得一讀)
對pytest的介紹。目前Python的世界裡面有許多測試框架,pytest就是其中比較出眾的一個。本文是介紹pytest的比較精彩的文章,值得一讀。
4. Realtime Django Using Node.js and Redis
使用Node.js和Redis構建實時的Django。本文將介紹如何使用Django,redis和node.js構建實時的應用。
5. Python shortcuts for the Python beginner
Python初學者快速入門。本文對於其他程式語言轉到Python的初學者來說非常實用。
本文討論如何用Python去實現延遲載入,在實現的同時卻並不複雜。
7. Better Typography for iPython Notebooks
非常實用的文章,教你怎樣使用一點點CSS提高iPython Notebook的可讀性和排版美觀。
(譯者注:譯者表示自己玩了好幾年Python竟然不知道這貨的存在!看了一篇介紹以後覺得這貨非常酷,如果能把iPython Notebook應用於電腦科學教學之中,應該會很受學生的歡迎)
8. Virtualenv’s bin/activate is Doing It Wrong
本文作者認為,儘管virtualenv是個不錯的工具,但是它包含的bin/active指令碼的設計思路卻一點也不想unix風格,會導致許多問題。作者接著就給出了許多應該怎麼做的建議。
本文介紹瞭如何在多執行緒系統中使用Python執行緒和佇列模組,但是本文中沒有提到 GIL,在處理Python多執行緒時GIL這個模組是個重要的考慮因素。
10. Python Is Not Just a Language — It’s a Development Platform
這是一篇非常精彩的文章,每一個Python開發者都應該讀一讀。Doug Hellmann這本文中給出對Python的很好的回顧。
11. Deploying Django with Salt Stack
部署工具Salt Stack非常棒。大家可以來看看這篇文章學習Salt Stack的基本知識以及如何使用Salt Stack部署Django應用。
12. Getting started with Python for Data Scientists
資料社群DC給立志成為資料科學家的人做了個很好的Python介紹。該社群詳細列出了入門以及資料分析所需要的所有的工具和資源。
13. Core Concepts of Django Forms
你是不是對Django表單還是有些不太清楚,或者你想更新一下你的Django表單核心概念的知識?本部落格的作者能夠幫助你回答這個問題。趕緊來看看吧。
14. Approach: Building a toy template engine in Python
如果你對模板引擎到底是怎樣工作的感到困惑,那麼就來看看這篇博文吧。本文的作者將引導你一步步建立起一個簡單的模板引擎。
Python魔術一般的self,有些人恨它,有些人不瞭解它,也有些人不在乎它。在這篇博文裡面,作者會用實際的例子來解釋Python的self語句。
16. Python Descriptors Demystified
對於Python描述符不太瞭解,那麼趕緊看過來吧!
17. Facts and Myths about Python names and values
Python的變數名和值機制到底是怎樣實現的?就讓Ned來解釋一下吧,本文中包含了大量的例子,非常不錯的文章。
18. setup.py vs. requirements.txt
對於setup.py和requirements.txt以及它們的角色總是有許多的誤解。許多人會認為它們兩個是重複的,並開發出了工具來處理這種“重複性”。
19. Functional linked lists in Python
本文將會告訴你怎麼使用函數語言程式設計風格在Python中實現一個連結表。
20. A Guide to Analyzing Python Performance
本文是一個很好的入門教程,教你在Python中如何去分析程式效能。
21. Of Solving the Rubik’s From Scratch
本文詳細介紹瞭如何使用Python去解決魔方問題,文中包含大量程式碼例項,非常不錯。
22. Introduction to Pandas and Vincent
本視訊介紹了Pandas以及該專案中的Dataframe和Series物件。接著使用了Vincent這個工具生成了這些物件的視覺化檢視。
(譯者注:Vincent這個專案非常不錯,幾行Python程式碼就可以畫出很絢麗的圖表,媽媽再也不用擔心我不會畫圖了,值得mark)
專案分享
1.radon
你想知道你自己的程式碼的複雜度是多少嗎?或者你想分析你的程式碼的圈複雜度嗎?那麼來看看這個專案吧,該專案能夠對Python程式碼進行復雜度分析,趕緊來看看吧!執行一下該專案你就能看到結果了。
2. django-conch
這是一個非常簡潔的專案。Django-conch把django shell暴露了出來,可以通過ssh進行訪問。如果你想除錯遠端伺服器上的Django應用,你就會覺得該專案非常實用了。
3. pudb
pudb是一個控制檯上的Python偵錯程式
(譯者注:懷舊風格,感覺回到了最早的Pascal和C編輯器的年代)
4. python-social-auth
Python Social Auth的目標是成為認證所有社交服務的利器。該專案目前支援Django、Flask以及Web.py,並且支援許多服務。如果你在應用裡面需要用到這個功能的話推薦你看下。
5. motor
該專案是專為 Tornado應用編寫的MongoDB驅動,是以非阻塞方式實現的。
6. elephant
該專案是一個基於S3的key-value儲存,並且提供Elastic search檢索功能。
非常酷的工具。現在使用Twitter的Bower工具的人可以通過包管理來安裝Sublime Text 2了。
8. Pony ORM
Pony ORM這個專案挺好玩的,它會把Python的程式碼翻譯成SQL。並且還有一個圖形化的編輯器能夠把物件模型轉換成Python程式碼。對於非商業使用者來說可以免費使用商業版。
(譯者注:該專案確實非常不錯,強烈推薦啊)
9. Falcon Framework
Falcon是個高效能的雲API框架。Falcon號稱與Web框架相比,它能夠提供在相同的硬體上服務30倍的請求。有興趣嗎?試試看吧。
10. cherrymusic
該專案是一個用Python編寫的音樂流伺服器。趕緊把你自己的音樂唱片集推送到你的裝置上吧!
11. smiley
Smiley包含了一些命令,能夠執行Python程式並監控其執行的過程,能夠記錄執行過程並生成一個報告。
12. wssh
該專案是websockets橋接的ssh,能夠在瀏覽器中執行ssh shell。非常不錯。包含了一個Web介面以及一個伺服器。
13. babel
Babel是個Python的國際化庫,提供了許多國際化方面的實用工具。
14. regexpbuilder
該專案能夠使得你的正規表示式可讀性變強,同時易於維護,。寫正規表示式時,該專案採用了鏈式方法以及變數。
15. flask-restful
該專案是一個簡單的框架,能夠在Flask專案中快速地搭建出REST API出來。
16. pulsar
如果你正在尋找一個Python的web框架,該框架能夠很好地支援非同步操作的話,恭喜你找到了答案,pulsar是一個併發事件驅動的Python框架。
(譯者注:Tornado也是一個支援非同步操作的非常著名的web框架,同樣也是Python系的)
17. quokka
這是一個基於Flask的內容管理系統,該系統還使用了MongoDB。
18. dejavu
你還在好奇Shazam到底是怎麼實現的麼?那麼就來看看這個用Python實現的聲紋識別演算法吧!
(譯者注:Shazam是一個手機App)