没想到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)