python 常用库
* NumPy Python 的数学运算库,有时候一些别的库也会调用里面的一些功能,比如数组什么的;
* Pil Python下著名的图像处理库 Pil;
* SimPy 利用Python进行仿真、模拟的解决方案;
* Matplotlib 据说是一个用来绘制二维图形的 Python模块,它克隆了许多Matlab中的函数, 用以帮助Python用户轻松获得高质量(达到出版水平)的二维图形;
o Graphviz 与 Matplotlib 不同,这个东西能画:有向图、网络结构、有限状态机等等。本身不是 Python 实现的,但是能找到 Python 封装。
* Crypto python的加解密扩展模块;
* Python for CJK 提供与python有关的CJK语言支持功能:转码、显示之类。
* Psyco、Pyrex:两个用于提高Python代码运行效率的解决方案;如果对性能还不满意,可以试试这样:用 Python 写自己的 C Module。
* Pyflakes、PyChecker、PyLint:都是用来做Python代码语法检查的工具。
* 图形界面开发库:
o wxPython 基于wxWindows的易用且强大的图形界面开发包wxPython;wxPython发行版还自带了PyCrust、PyShell、PyAlaCarte和PyAlaMode等几个工具,分别是图形界面Shell和代码编辑器等,分别具有不同特点可以根据自己的需要选用。
o PyQt 一般认为综合各平台上的表现,PyQt比 wxPython能提供更为可靠的表现,较少遇到稀奇古怪的Bug。只是Qt虽然LGPL了,可是PyQt对商业软件仍然是收费的,Nokia刚开始做LGPL的Qt绑定——PySide,但是还谈不上成熟。
+ 在Mac上安装 PyQt的详细步骤 PyQt在Win和Linux上都有可直接安装的二进制包,只有Mac没有。不过按照这篇文档来做,也是不难(我已试过,一切靠谱)。
o PyGtk Qt永远的竞争者,在Win和Linux下表现都还不错,Mac下新的本地化移植绕过了系统自带的X11服务,性能大为提升,只是对输入法和字体支持等还有欠缺。
+ 先按照Building GTK-OSX安装GTK-OSX,然后按照Gtk+ Python页的说明安装PyGtk即可,非常容易。
* Tornado 非阻塞、高性能、可扩展的 Web Server 实现,源自FriendFeed。
* http://avc.inrim.it/html/ 比 MVC模式更方便易用的开发框架,主要是帮助透明地完成界面控件与后台数据之间的内容绑定。该框架支持GTK、QT、TK、wxWidgets等主要具有 Python封装的GUI开发框架。
* pygame 用 Python帮助开发游戏的库,也可以用这个来播放视频或者音频什么的,大概依靠的是SDL;
* py2exe win下将 Python程序编译为可执行程序的工具,是一个让程序脱离Python运行环境的办法,也可以生成Windows服务或者COM组件。其他能完成 Python脚本到可执行文件这个工作的还有Gordon McMillan's Installer、Linux/Unix专用的freeze、Mac专用的py2app,另外setuptools可能也能帮上点。不过此类工具难免与一些模块有一些兼容性的问题,需要现用现测一下。总之这个主题可以参考How to Distribute Commercial Python Applications。
* 嵌入式数据库:BerkeleyDB的Python版,当然还有其他的好多。
* PEAK提供一些用于实现自动化集群测试的重要基础类库,比如超轻量线程框架、分布式代码执行等。
o greenlet 是PEAK给出的一种进程内的线程模型实现,自称是Stackless项目的副产品。其实这是一种伪线程,也就是说 greenlet间切换需要明确指定下一步切换到哪块指令继续执行,而没有被执行的代码就被暂时挂起了。这里面greenlet间的执行顺序是完全确定的,并且是非并发的,就不能解决长时间大量资源占用的操作会导致程序无响应的问题。但greenlet可以用来减少资源死锁、互斥造成的资源消耗(代码被阻塞时,可以切换先去执行其他未被阻塞的部分),因此用来响应按钮点击等是挺好用的。
+ greenlet 现在不再是 pylib 的组成部分了,而是一个独立的名为 greenlet 的 pypi 包,可以通过 easy_install 安装。
o Eventlet 是基于 greenlet 完成的一个高并发网络库,提供“线程”池、消息队列等许多非常方便的机制,比直接用 greenlet 要方便得多。并且 Eventlet 源自著名的虚拟现实项目——第二人生,是经过现实考验的可靠解决方案。
* Pyro 一个Python的分布式对象系统,提供面向对象风格的RPC功能。
* PycURL 传说这是实现Python下多线程网页抓取的效率最高的解决方案,本质是对libcurl C语言库的封装。其实Twisted也可以定制成为一个网页抓取工具的。
* Protocol Buffers Google提供的高效数据序列化解决方案,比基于XML的数据序列化方案在数据大小和编解码效率上都大约高一个数量级。当然,Google自己也说这种办法也不是用哪都合适,一来Protocol Buffers不大适合用来处理格式化的文本,另一方面其本质是一个传输协议的生成语言,可能在传输的内容相对固定时,才值得专门生成一套这样的解析器。
* pyinotify 利用操作系统自身提供的Notify 机制以最高的效率监控文件变化。
* Scrapy 是一个网络爬虫框架,可以非常容易地通过定制规则得到所需的爬网器。基于 Twisted 实现。
* chardet 一个猜测网页编码(比如utf-8还是gb18030)的库,会根据HTTP参数、HTML标签、XML标签中的相关声明来进行猜测。另有一个非 Python实现的Enca也可以提供类似的功能。
* JPype Python 里调用Java类库、Java代码的桥接解决方案(因Limodou在ChinaUnix上提及而得知)。JPype 使用要点
* µTidylib 著名html整理、排错、自动修正工具HTML Tidy Library的Python封装。通常在正式开始分析html之前,先用这个东西预处理一下,后面的工作会轻松、准确得多~
* Fudge 被HD的项目组认为是最好的Python Mock模块(也即冒烟测试)。
* nose 测试脚本自动发现、自动执行辅助工具。文档见nose documentation。
* Coverage.py Python 测试代码覆盖率统计工具,已经内置于 nose 。
* Heapy 对 Python 程序进行内存占用剖析的模块,Guppy-PE 项目的组成部分之一,被 Scrapy 等项目用作内存泄露的调试工具。类似的还有:
o PySizer,感觉已经太旧了。
o Dowser,和 Heapy 特点不太一样,并且使用CheeryPy作为调试结果的输出界面。
* Gluttony Python 模块之间依赖关系图的自动生成工具。
(Edit Section ↓)
3.4 其他东西
* http://www.forum.nokia.com/main/0,,034-821,00.html Nokia 居然发布了在Series 60系统上运行Python程序(图形界面用wxPython)的库,还有一个Wiki页是关于这个的:http://www.postneo.com/postwiki/moin.cgi/PythonForSeries60 。Python4Symbian这个页面是记录的我的使用经验。
* pyre:使用Python完成高性能计算需求的包,真的可以做到么?还没研究。
* Parallel Python:纯Python的并行计算解决方案。相关中文参考页面
* Pexpect:用Python作为外壳控制其他命令行程序的工具(比如Linux下标准的ftp、telnet程序什么的),还没有测试可用程度如何。
* pyjamas:Google GWT的Python克隆,还处在早期版本阶段。
* Durus:Python的对象数据库,当然也可以作为一种对象实例持久化的机制来使用;这是一个开源的纯Python实现,并提供一个可选的C语言插件来大幅提高运行效率。
o Missile DB:一种 Python 的、简洁高效的 DBMS,自称是Durus的一种衍生品,更能够适应Stackless Python环境。同时也是并发性能极高的Eurasia3项目的一个子项目。
* ey-lessql:收集的各种分布式键值数据库的Python版驱动。如果不考虑Python驱动的问题,A Yes for a NoSQL Taxonomy是一个非常完整的非SQL数据存储引擎列表。
o NoSQL数据库探讨之一 - 为什么要用非关系数据库?
o NOSQL Patterns
o 目前我最感兴趣的键值数据库是MongoDB,有人认为它基本上已经可以替代MySQL所能提供的功能,并且性能更高!
+ Ming可能是类似 ORM 对关系数据库所起作用的 MongoDB 的 Python 封装?
+ pymodels MongoDB 的轻量级 ORM 封装,它本来是用于 Tokyo Tyrant 和 Tokyo Cabinet 的。
* pyzmq:消息队列 zerozmq 的 Python 封装,基本上这是一个追求性能为主的消息队列实现,全部数据在内存中保存。如果担心数据持久化的问题,可以考虑RabbitMQ 等类似方案。另据传闻,Twitter已经由RabbitMQ转换到Kestrel。
* Mulib 和 restish 都是基于 Python 实现的 REST 风格网络服务框架。
* Scapy:似乎是一个能够控制底层网络封包的交互式Python工具,对网络协议分析应该很有用。
3.5 有意思的东西
* Howie:用Python实现的MSN对话机器人。
* Cankiri:用一个Python脚本实现的屏幕录像机。
分享到:
相关推荐
Python是一种强大的、面向对象的脚本语言,...以上是Python常用类库的一些关键知识点,通过深入学习和实践,可以提升Python开发能力并有效地利用这些工具库。在Python的世界里,选择合适的类库和工具往往能事半功倍。
涵盖了 python的常用类库,分类整理,需要的大家自行下载
本项目为基于Python开发,集成了PHP常用类库的设计源码,包含52个文件,涵盖26个Python文件、7个HTML文件、5个GIF图片、2个Markdown文件、2个CSS文件、2个JavaScript文件、2个JSON文件、2个可执行文件、1个PHP文件...
Python计算类(Numpy)思维导图,便捷整理思路,Numpy是什么?、为什么使用Numpy、Numpy安装、Numpy基础、创建数组并查看、基本运算、常用函数、索引、切片、迭代、形状操作
打包 Python 类库
这个Repo主要用于分享Python面试题,目前已经涵盖Python基础,Python面向对象,Python进阶,Python爬虫,Python Web开发,Python数据库...Python常用类库 Python进阶 PythonWeb开发 Python爬虫 Python数据库编程
以下是一些.NET Framework 4.0常用类库的关键知识点: 1. **System** 命名空间:这是.NET Framework的基础命名空间,包含了众多基本类型,如int、string、object等,以及控制流程(如Exception、Delegate)和多线程...
matplotlib 作用:生成出版质量级别的图形 ... ...labels = ('Python', 'C++', 'Ruby', 'Java',) sizes = (215, 130, 245, 210,) colors = ('gold', 'yellowgreen', 'lightcoral', 'lightskyblue',) p
这个工具类模块的创建者显然是为了方便日后开发使用,通过将常用的功能进行封装,提高了代码的复用性和效率。在实际项目中,可以导入这个“utils”模块,直接调用其中的方法,而无需每次都重复编写这些基础但关键的...
python
openpyxl 作用:操作 excel 表格 ...安装:pip install openpyxl import openpyxl # 创建一个工作簿(在内存中) # wb = openpyxl.Workbook() # 通过 active 属性获取,新建的工作簿默认预先建好的工作表(如果工作簿...
Python 常用库大全 本篇将对 Python 中常用的库进行总结,涵盖环境管理、包管理、构建工具、交互式解析器、文件管理、日期和时间操作、文本处理等多个方面。 环境管理: * p: 非常简单的交互式 Python 版本管理...
软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备...
机器学习模型的python与类库实现本repo以李航博士的《统计学习方法》为路线,逐章讲解并实现其中所有的算法;从而,再加上常用的机器学习模型,例如GBDT,XGBoost,Light GBM,FM,FFM等,力争将传统的机器学习方法...
本安装包主要包含Python2.7的安装包(python-2.7.12),安装之后安装设置工具(tools),再安装pip成功后,以后就可一键install安装各种Python库文件了。本安装包里面附含numpy,scipy等常用库文件......
### Python常用库大全 Python作为一门广泛使用的编程语言,在各个领域都有着极其丰富的生态系统。下面将详细介绍部分常用的Python库,这些库覆盖了环境管理、包管理、分发、构建工具、交互式解析器、文件管理、日期...
以下是一些在Python中常用且重要的库及其功能介绍: 环境管理库: 1. p:一个简单的交互式Python版本管理工具。 2. pyenv:用于管理不同Python版本的工具,确保不同的项目能在不同的环境中独立运行。 3. Vex:一个...
在数据可视化方面,除了matplotlib,Seaborn和Plotly也是常用选择。Seaborn基于matplotlib,提供了更高级别的接口,适用于复杂的统计图形。Plotly则支持生成交互式图表,适合在线分享和协作。 对于自然语言处理...