python常用框架及第三方库
一、Web框架
1.Django:
开源web开发框架,它鼓励快速开发,并遵循MVC设计,比较庞大,开发周期短。Django的文档最完善、市场占有率最高、招聘职位最多。全套的解决方案,Django象Rails一样,提供全套的解决方案(full-stack framework + batteries included),基本要什么有什么(比如:cache、session、feed、orm、geo、auth),而且全部Django自己造,开发网 站应手的工具Django基本都给你做好了,因此开发效率是不用说的,出了问题也算好找,不在你的代码里就在Django的源码里。
2.web.py: 轻量级Web框架,虽然简单但是功能强大。
3.Tornado:
Web服务器框架。Tornado即是一个Web server,同时又是一个类web.py的micro-framework,作为框架,Tornado的思想主要来源于Web.py,没有好的ORM,没有session支持(虽然官方做法是用cookie代替),WSGI支持不完整。但好处就是它用非阻塞的事件驱动开发,性能不错。并且自带WEB服务器,拿来学习一个非阻塞方式WEB服务器工作原理很适合。因为不用再去读nginx源码了。
4.Zope: 开源的Web应用服务器。
5.ActiveGrid: 企业级的Web2.0解决方案。
6.Karrigell: 简单的Web框架,自身包含了Web服务,py脚本引擎和纯python的数据库PyDBLite。
7.CherryPy: 基于Python的Web应用程序开发框架。
8.Pylons: 基于Python的一个极其高效和可靠的Web开发框架。
9.TurboGears: 基于Python的MVC风格的Web应用程序框架。
10.Twisted: 流行的网络编程库,大型Web框架。
11.Quixote:Web开发框架。
二、科学计算
1.Matplotlib: 用Python实现的类matlab的第三方库,用以绘制一些高质量的数学二维图形。
2.Scipy: 基于Python的matlab实现,旨在实现matlab的所有功能。
3.Numpy: 基于Python的科学计算第三方库,提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,线性代数,傅立叶变换,以及精密的运算库。专为进行严格的数字处理而产生。
三、网页爬虫框架
scrapy: Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。
是一个为遍历爬行网站、分解获取数据而设计的应用程序框架,它可以应用在广泛领域:数据挖掘、信息处理和或者历史片(历史记录)打包等等。
四、分布式网络框架
Twisted: 使用Python编写,强壮的、面向对象的解释性语言。Python使它的爱好者充满热情。使用Python编程是一种乐趣,易于编写、易于阅读、易于运行。因为Python是跨平台的,所以可以运行Twisted程序在Linux、Windows、Unix和MAC等等系统上。
Twisted包括大量的功能。Email、WEB、news、chat、DNS、SSH、Telnet、RPC、数据库存取或者更多。
五、游戏框架
Pygame: 基于Python的多媒体开发和游戏软件开发模块。跨平台 Python模块,专为电子游戏设计。包含图像、声音。建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚。基于这样一个设想,所有需要的游戏功能和理念都(主要是图像方面)都完全简化为游戏逻辑本身,所有的资源结构都可以由高级语言提供,如Python。
六、GUI
1.Tkinter: Python下标准的界面编程包,因此不算是第三方库了。
2.PyGtk: 基于Python的GUI程序开发GTK+库。
3.PyQt: 用于Python的QT开发库。
4.WxPython: Python下的GUI编程框架,与MFC的架构相似。
七、其他
1.BeautifulSoup: 基于Python的HTML/XML解析器,简单易用。
2.MySQLdb: 用于连接MySQL数据库。
3.Py2exe: 将python脚本转换为windows上可以独立运行的可执行程序。
4.pefile: Windows PE文件解析器。
5.PIL:基于Python的图像处理库,功能强大,对图形文件的格式支持广泛。
6.cElementTree: 高性能XML解析库,Py2.5应该已经包含了该模块,因此不算一个第三方库了。