1、Python开发工具
(1)Tkinter
Python默认的图形界面接口。Tkinter是一个和Tk接口的Python模块,Tkinter库提供了对Tk API的接口,它属于Tcl/Tk的GUI工具组。
(2)PyGTK
用于python GUI程序开发的GTK+库。GTK就是用来实现GIMP和Gnome的库。
(3)PyQt
用于python的Qt开发库。QT就是实现了KDE环境的那个库,由一系列的模块组成,有qt,qtcanvas,qtgl,qtnetwork,qtsql,qttable,qtui and qtxml,包含有300个类和超过5750个的函数和方法。PyQt还支持一个叫qtext的模块,它包含一个QScintilla库。该库是Scintillar编辑器类的Qt接口。
(3)wxPython
GUI编程框架,熟悉MFC的人会非常喜欢,简直是同一架构(对于初学者或者对设计要求不高的用户来说,使用Boa Constructor可以方便迅速的进行wxPython的开发)属于外置库,要先下载。
(4)PIL
python提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换、打印和显示。还能进行一些图形效果的处理,如图形的放大、缩小和旋转等。是Python用户进行图象处理的强有力工具。
(5)Psyco
一个Python代码加速度器,可使Python代码的执行速度提高到与编译语言一样的水平。
(6)xmpppy
Jabber服务器采用开发的XMPP协议,Google Talk也是采用XMPP协议的IM系统。在Python中有一个xmpppy模块支持该协议。也就是说,我们可以通过该模块与Jabber服务器通信,是不是很Cool。
(7)PyMedia
用于多媒体操作的python模块。它提供了丰富而简单的接口用于多媒体处理(wav,mp3,ogg,avi,divx,dvd,cdda etc)。可在Windows和Linux平台下使用。
(8)Pmw
Python megawidgets,Python超级GUI组件集,一个在python中利用Tkinter模块构建的高级GUI组件,每个Pmw都合并了一个或多个Tkinter组件,以实现更有用和更复杂的功能。
(9)PyXML
用Python解析和处理XML文档的工具包,包中的4DOM是完全相容于W3C DOM规范的。它包含以下内容:
xmlproc:一个符合规范的XML解析器。Expat:一个快速的,非验证的XML解析器。还有其他和他同级别的还有 PyHtml PySGML。
(10)PyGame
用于多媒体开发和游戏软件开发的模块。可以直接使用pip install pygame下载
(11)PyOpenGL
模块封装了“OpenGL应用程序编程接口”,通过该模块python程序员可在程序中集成2D和3D的图形。
(12)NumPy、NumArray、SAGE
NumArray是Python的一个扩展库,主要用于处理任意维数的固定类型数组,简单说就是一个矩阵库。它的底层代码使用C来编写,所以速度的优势很明显。SAGE是基于NumPy和其他几个工具所整合成的数学软件包,目标是取代Magma,Maple,Mathematica和Matlab 这类工具。
(13)MySQLdb
用于连接MySQL数据库。还有用于zope的ZMySQLDA模块,通过它就可在zope中连接mysql数据库。
(14)Sqlite3
用于连接sqlite数据库。
(15)Python-ldap
提供一组面向对象的API,可方便地在python中访问ldap目录服务,它基于OpenLDAP2.x。
(16)smtplib
发送电子邮件。
(17)ftplib
定义了FTP类和一些方法,用以进行客户端的ftp编程。如果想了解ftp协议的详细内容,请参考RFC959。
(18)PyOpenCL
OpenCL的Python接口,通过该模块可以使用GPU实现并行计算。
(19)xes-lib
学而思库可用于发送邮件、查看天气等功能。
2、Python开发环境
2.1工具
·IDLE:Python内置IDE(随python安装包提供)
·PyCharm:详见百度百科PyCharm,由著名的JetBrains公司开发,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。
·Komodo和Komodo Edit:后者是前者的免费精简版
·Spyder:安装Anaconda自带的高级IDE
·PythonWin:ActivePython或pywin32均提供该IDE,仅适用于Windows
·SPE(Stani's Python Editor):功能较多的自由软件,基于wxPython
·Ulipad:功能较全的自由软件,基于wxPython;作者是中国Python高手limodou
·WingIDE:可能是功能最全的IDE,但不是自由软件(教育用户和开源用户可以申请免费key)
·Eric:基于PyQt的自由软件,功能强大。全名是:The Eric Python IDE
·DrPython
·PyScripter:使用Delphi开发的轻量级的开源Python IDE,支持Python2.6和3.0。
·PyPE:一个开源的跨平台的PythonIDE。
·bpython:类Unix操作系统下使用curses库开发的轻量级的Python解释器。语法提示功能。
·eclipse+pydev插件:方便调试程序
·emacs:自带python支持,自动补全、refactor等功能需要插件支持
·Vim:最新7.3版编译时可以加入python支持,提供python代码自动提示支持
·Visual Studio 2003+VisualPython:仅适用Windows,已停止维护,功能较差
·SlickEdit
·Visual Studio 2010+Python Tools for Visual Studio
·TextMate
·Netbeans IDE
·Sublime
·ipython
另外,诸如Notepad++、EditPlus、UltraEdit等通用的程序员文本编辑器软件也能对Python代码编辑提供一定的支持,比如代码自动着色、注释快捷键等,但是否够得上集成开发环境的水平,尚有待评估。
2.2解释器
Python是一门跨平台的脚本语言,Python规定了一个Python语法规则,实现了Python语法的解释程序就成为了Python的解释器。
CPython(ClassicPython,也就是原始的Python实现,需要区别于其他实现的时候才以CPython称呼;或解作C语言实现的Python)。这是最常用的Python版本。
Jython(原名JPython;Java语言实现的Python,现已正式发布)。Jython可以直接调用Java的各种函数库。
PyPy(使用Python语言写的Python)
IronPython(面向.NET和ECMA CLI的Python实现)。IronPython能够直接调用.net平台的各种函数库。可以将Python程序编译成.net程序。
ZhPy(周蟒)(支持使用繁/简中文语句编写程序的Python语言)
3、Python应用领域
Python是一种解释型脚本语言,可以应用于以下领域:
(1)Web 和 Internet开发
(2)科学计算和统计
(3)人工智能
(4)桌面界面开发
(5)软件开发
(6)后端开发
(7)网络接口:能方便进行系统维护和管理,Linux下标志性语言之一,是很多系统管理员理想的编程工具。
(8)图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。
(9)数学处理:NumPy扩展提供大量与许多标准数学库的接口。
(10)文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。
(11)数据库编程:程序员可通过遵循Python DB-API(应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。
(12)网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet 及BitTorrent. Google都在广泛地使用它。
(13)Web编程:应用的开发语言,支持最新的XML技术。
(14)多媒体应用:Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。
(15)pymo引擎:PYMO全称为python memories off,是一款运行于Symbian S60V3,Symbian3,S60V5,Symbian3,Android系统上的AVG游戏引擎。因其基于python2.0平台开发,并且适用于创建秋之回忆(memories off)风格的AVG游戏,故命名为PYMO。
(16)黑客编程:python有一个hack的库,内置了你熟悉的或不熟悉的函数,但是缺少成就感。
(17)用Python写简单爬虫
首先,要通过urllib2这个Module获得对应的HTML源码(PS:在python3.3之后urllib2已经不能再用,代之以urllib)。
import urllib2 #调用urllib2
url='http://www.baidu.com/s?wd=cloga' #把等号右边的网址赋值给url
html=urllib2.urlopen(url).read() #html随意取名 等号后面的动作是打开源代码页面,并阅读
print(html) #打印
通过上面这三句就可以将URL的源码存在content变量中,其类型为字符型。
接下来是要从这堆HTML源码中提取我们需要的内容。用Chrome查看一下对应的内容的代码(也可以用Firefox的Firebug)。
可以看到url的信息存储在span标签中,要获取其中的信息可以用正则表达式。
4、Python著名应用
Digwebs-Web应用框架
Pylons-Web应用框架
Zope-应用服务器
Plone-内容管理系统
Django-鼓励快速开发的Web应用框架
Uliweb-国人开发的轻量级Web框架
TurboGears-另一个Web应用快速开发框架
Twisted-Python的网络应用程序框架
flask-Python 微Web框架
tornado-非阻塞式服务器
Webpy-Python 微Web框架
Bottle-Python 微Web框架
EVE-网络游戏EVE大量使用Python进行开发
Reddit-社交分享网站
Dropbox-文件分享服务
TurboGears-另一个Web应用快速开发框架
Fabric-用于管理成百上千台Linux主机的程序库
Trac-使用Python编写的BUG管理系统
Mailman-使用Python编写的邮件列表软件
Mezzanine-基于Django编写的内容管理系统
Blender-以C与Python开发的开源3D绘图软件