Python常用第三方库(转载)


wxPython

如果你之前是 windows 程序员,用 MFC 或者 WIN32API 开发界面程序,那进入 Python 国度最好的 GUI 选择应该是 wxPython。它是 wxWidgets 的 Python Bind,与 wxWidgets 的开发完美同步,最为重要的一点是它的消息机制与 MFC 颇为相似,以前在 MFC 的经验完全可以稍作变化就套用在 wxPython 上面。在 WIN32 开发中,最讨厌的一环肯定有 WM_SIZE 消息的处,在主窗口大小变化的时候,保持控件布局在 WIN32 是一件麻烦事。这件事情 wx 解决得非常完美,它的sizer 概念可以让我轻松地在不同窗口尺寸的情况下保持完美的控件布局。另外如果你已经讨厌了 MFC 的 doc-view 模型,wx 也可以给你一个新的选择;如果你非常喜欢 doc-view 模型,放心,在 wx 中仍然可以轻松实现,以前的思想依然可以在这里发挥余热。 wxPython 有两个封装,一个 PythonCard,另一个是 dabo。前者是 wxPython 的有限封装,不支持wxPython 的全部特性,它的目标是让 wxPython 更加 Pythonic。后者比 PythonCard 要庞大不少,确切来说,它应该是一个三层架构的 C/S 模式的开发框架。如果你想开发基于数据库的应用(如 MIS、ERP 等)用 dabo 是一个不错的选择;另外,如果你之前习惯了 VB、VFP、Delphi 等 RAD 开发环境,dabo 并不比这些昂贵的工具差多少哦!

py2exe

按 照邪恶的 windows 思维,编写的应用如果不编译出一个 .exe 文件恐怕是算不得“软件”的,py2exe 作用正是把你的 .py 脚本变成 .exe 文件,通常它会把脚本打包到一个 .zip 文件中去,但也你可以通过修改 setup.py脚本把所有的脚本、依赖的 dll 等全部打包到一个 exe 中去,看起来跟 VC、VB 编译出来的程序没有什么两样! 如果你的客户需要在 windows 下使用你的应用程序,py2exe 是你不可或缺的工具。我就是用它打包由 wxPython 写的小工具给公司里的游戏策划用的。

psyco

脚本的执行效率多少有点差强人意,虽然优化起来并不是难事,但如果有简单的方法,近乎不用修改源代码,那当然值得去关注一下。psyco 的神奇在于它只需要在代码的入口处调用短短两行代码,性能就能提升 40%或更多,真可谓是立竿见影! 如果你的客户觉得你的程序有点慢,敬请不要急着去优化代码,psyco 或许能让他立即改变看法。psyco 堪称 Python 的 jit,有许多潜力可以挖掘,如果剩下来给你优化性能的时间已经不多,请马上去阅读它的手册,有许多招儿轻松优化性能。

PIL

PIL 是 Python 的图像处理库,我的看法是强到没得说,简单到没得说。它可以打开数十种图像格式,常见的jpg/png/bmp 等当然不在话下;此外还提供许多图像处理函数,如图像增强、滤波算法等。

MySQLdb

这 是 Python 对开源数据库 Mysql 的支持,官网在http://sourceforge.net/projects/mysql-python。支持 Mysql 3.23-5.1 全系列版本,Python 版本的要求是 2.3-2.5。MySQLdb 是 Python DB API-2.0 的实现,现在已经很成熟了。最新的版本是 1.2.2 。 如果从事服务器开发,那少不得跟数据库连接池打交道,这时你可以使用 DBUtils 或 jonpy 两个开源程序库。其中 DBUtils 是一套数据库连接池库,而 jonpy 则包括了 CGI 以及数据库连接池等多个功能,请在阅读手册后选择合适的自己库。

pyprocessing

Python 解释器里的 GIL(全局解释器锁)使得 Python 在多核时代有点尴尬——这个支持原生线程的脚本语言竟然不能通过多线程利用多个 CPU 内核同时并发计算。pyprocessing 没有尝试去除 GIL,而是剑走偏锋,尝试从多进程的方式来帮助 Python 走出困境。结果就是使用 pyprocessing 创建进程和进程间通信不仅像使用内置的 threading 模块那么简单,甚至还更加简单。pyprocessing 不仅可以通过本机 socket 和管道进行通信,而且封装得极为完美,它的 Queue 实现用起来跟内置的 Queue 没啥两样,但它是一个进程间共享的队列哦! pyprocessing 在 py2.6 和 py3.0 中已经作为内置模块了,也算是开发社区对 pyprocessing 项目的肯定吧。如果你用 Python 开发服务器应用,特别是网络游戏这样的应用,pyprocessing 怎么可以不去关注一下!

PyQuery (with lxml)

安装方法 pip install pyquery Python 解析 HTML 时最经常被推荐的是 Beautiful Soup ,而且它的确也表现很好。提供良好的 Python 风格的 API,而且很容易在网上找到相关的资料文档,但是当你需要在短时间内解析大量文档时便会碰到性能的问题,简单,但是真的非常慢。

dateutil

安装方法:pip install dateutil 处理日期很痛苦,多亏有了 dateutil

fuzzywuzzy

安装方法:pip install fuzzywuzzy fuzzywuzzy 可以让你对两个字符串进行模糊比较,当你需要处理一些人类产生的数据时,这非常有用。下面代码使用Levenshtein 距离比较方法来匹配用户输入数组和可能的选择。

watchdog

安装方法:pip install watchdog watchdog 是一个用来监控文件系统事件的 Python API和shell实用工具。

sh

安装方法:pip install sh sh 可让你调用任意程序,就好象是一个函数一般

pattern

安装方法:pip install pattern Pattern 是 Python 的一个 Web 数据挖掘模块。可用于数据挖掘、自然语言处理、机器学习和网络分析。

path.py

安装方法:pip install path.py 当我开始学习 Python 时,os.path 是我最不喜欢的 stdlib 的一部分。尽管在一个目录下创建一组文件很简单。

xlrd,xlwt,openpyxl

用于解析excel模块,前两个适用于2003以前,后面的支持2007.

line_profiler and kernprof

pythonhosted.org/line_profiler/#installation Robert Kern有一个称作line_profiler的不错的项目,我经常使用它查看我的脚步中每行代码多快多频繁的被执行。 想要使用它,你需要通过pip安装该python包:pip install line_profiler 一旦安装完成,你将会使用一个称做“line_profiler”的新模组和一个“kernprof.py”可执行脚本。

memory_profiler

https://github.com/fabianp/memory_profiler 现在我们对计时有了较好的理解,那么让我们继续弄清楚程序使用了多少内存。我们很幸运,Fabian Pedregosa模仿Robert Kern的line_profiler实现了一个不错的内存分析器。 首先使用pip安装: 1 $ pip install -U memory_profiler 2 $ pip install psutil (这里建议安装psutil包,因为它可以大大改善memory_profiler的性能)。

chardet

如果遇到网页编码问题试试这个

Docopt

抛弃optparse和argparse吧,使用docstrings来构建优雅的,可读性强的,并且复杂(如果你需要的话)的命令行界面。IMO2013年创建的最好的库。

Requests

称为人类使用的HTTP,是一个处理HTTP请求更为pythonic 的方法,比urllib2更更更好用。口碑可见,他在PyPI上下载已经超过5,000,000次 http://cn.python-requests.org/en/latest/user/quickstart.html#id2

Bottle

是一个快速,简单,轻量级的WSGI微型web框架。几秒内就能构建小型站点和APIs。所有的框架只有一个py文件,你甚至可以放进任意目录。

Structlog

一个先进的日志记录处理器。他集成了多个现存的日志记录工具,包含了Python标准库。你可以创建普通记录器,按你所想增加内容,使你的日志拥有持久性和可读性。

Watchdog

一个跨平台的Python库和shell工具,可以监视文件系统事件。超级好用,并且容易上手。

Delorean

可以是你用非常方便的方法来处理数据和时间。设置时区,截取到秒,分,小时,或者甚至使用特殊方法从一个数据迭代到另一个。浏览下文档,里面有很多示例。

lxml

是libxml2和libxslt的合体。如果你要处理XML或HTML,lxml是最好的选择。

生成图形库

pychart

chartdir

http://blog.csdn.net/zhaoweikid/article/details/181848