1.2Python语言的应用场景和成功示例

虽然Python可能被粗略地分类为“脚本语言”,Python的支持者较喜欢称它为一种高端动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shell脚本、VBScript等只能处理简单任务的编程语言,并不能与Python相提并论。

Python社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能覆盖科学计算、Web开发、数据库接口、图形系统多个领域。第三方模块可以使用Python或者C语言编写。SWIG和SIP常用于将C语言编写的程序库转化为Python模块。Python常被用做其他语言与工具之间的“胶水”语言。

网络应用程序

Python定义了WSGI标准应用接口来协调Http服务器与基于Python的Web编程之间的沟通。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web编程。使用Python语言编写的Gunicorn作为Web服务器,也能够运行Python语言编写的Web程序。Zope是著名的用Python编写的开源的Web应用服务器。

Python对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络爬虫等Web开发。用Python编写的一些Web框架,可以让程序员轻松地开发和管理复杂的Web编程。著名的第三方Web框架和函数库:

  • Django:开源Web开发框架,它鼓励快速开发,并遵循MVC设计,开发周期短。
  • Tornado:轻量级的Web框架,内置非阻塞式服务器,而且速度相当快。
  • Pyramid:轻量同时也可以规模化的Web框架,是Pylons计划的一部分。
  • TurboGears:MVC风格的Web应用程序框架。
  • Flask:轻量级的Web框架。
  • web2py:小巧灵活的Web框架,虽然简单但是功能强大。
  • CherryPy:Web应用程序开发框架。
  • Quixote:Web开发框架。
  • Bottle:微Web框架。
  • aiohttp:轻量级的Web框架,采用的是Python3的asyncio异步特性。
  • Twisted:流行的网络编程库,和大型Web框架。它支持异步在线编写编程和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软件。
  • Requests:适合于常人使用的HTTP库,封装了许多繁琐的HTTP功能,极大地简化了HTTP请求所需要的代码量。
  • Beautiful Soup:HTML/XML解析器,简单易用。
  • gevent:高性能并发框架,使用了epoll事件监听、协程等机制将异步调用封装为同步调用。

GUI开发

Python本身包含了Tkinter库,它是Python的业界标准GUI并被集成进入了IDLE。Tkinter基于了Tcl命令工具,能够支持简单的GUI开发。但是越来越多的Python程序员选择第三方GUI包来开发跨平台的桌面软件,使用它们开发的桌面软件运行速度快,与用户的桌面环境相契合。著名的第三方GUI库:

  • PyGObject:替代了PyGTK,为Python程序访问基于GObject的库提供了包装库,GObject是GTK、GIO和GStreamer等库使用的对象系统。
  • PyQt:用于Python的QT包装库,在GPL许可证或商业许可证下发行。
  • appJar:跨平台开源的Python的GUI库。提供对多数Tkinter内容的易用包装函数并带有额外的内建功能。
  • Kivy:用于开发多点触控应用软件的开源Python库,采用了自然用户界面(NUI)。
  • PySide:针对PyQt的替代库,在LGPL许可证下发行。
  • WxPython:Python下的GUI编程框架wxWidgets的包装库,它与MFC的架构相似。

科学计算

通过第三方科学计算库可以让Python程序员编写科学计算编程。著名的第三方科学计算库:

  • NumPy:基于Python的科学计算第三方库,提供了矩阵,线性代数,傅立叶变换等等的解决方案。
  • SciPy:基于Python的matlab实现,旨在实现matlab的所有功能。
  • matplotlib:用Python实现的类matlab的第三方库,用以绘制一些高质量的数学二维图形。
  • SymPy:支持数学符号运算。
  • pandas:用于数据分析、数据建模、数据可视化的第三方库。
  • scikit-learn:机器学习第三方库,实现许多知名的机器学习算法。
  • TensorFlow:Google开发维护的开源机器学习库。
  • Keras:基于TensorFlow、Theano与CNTK的高端神经网络API。
  • PyTorch:基于Torch的开源的机器学习库。

其它著名的第三方库

  • Boost.Python:Boost C++ Libraries包含了一组库,使得以Python或C++编写的编程能互相调用。
  • SQLAlchemy:关系型数据库的对象关系映射(ORM)工具。
  • PIL:基于Python的图像处理库,功能强大,对图形文件的格式支持广泛。目前已无维护,另一个第三方库Pillow实现了对PIL库的支持和维护。
  • pygame:基于Python的多媒体开发和游戏软件开发模块。
  • PyInstaller:能将程序发布为独立的安装程序包。
  • pywin32:通过这个第三方软件包,Python能够访问Windows的COM服务及其它Windows API。
  • py2exe:将python脚本转换为windows上可以独立运行的可执行程序。

成功示例

自从2003年,Python始终排行于TIOBE编程社区索引前十最流行编程语言,截至2020年11月,它是第二名最流行语言(居于C和Java之间),在2007年、2010年和2018年它被选为年度编程语言。

在很多操作系统里,Python是标准的系统组件。大多数Linux发行版和Mac OS X都集成了Python,可以在终端下直接运行Python。有一些Linux发行版的安装器使用Python语言编写,比如Ubuntu的Ubiquity安装器、Red Hat Linux和Fedora的Anaconda安装器。在RPM系列Linux发行版中,有一些系统组件就是用Python编写的。Gentoo Linux使用Python来编写它的Portage软件包管理系统。

一些著名的互联网公司都在内部大量地使用Python。有些公司会使用Scons代替make构建编译程序。很多游戏使用Python或者Lua编写游戏的逻辑、服务器。使用Python编写了如下著名应用:

  • Google – 在Google内部的很多项目,例如Google应用服务引擎使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。
  • Plone – 内容管理系统。
  • Fabric – 用于管理成百上千台Linux主机的程序库。
  • Pywikibot framework – MediaWiki的机器人编程。
  • MoinMoin – Python写成的Wiki程序。
  • trac – 使用Python编写的BUG管理系统。
  • GNU Mailman – 使用Python编写的邮件列表软件。
  • Mezzanine – 基于Django编写的内容管理系统。
  • EVE – 网络游戏EVE大量使用Python进行开发,处理游戏中繁多的逻辑。
  • Blender – 使用Python作为建模工具与GUI语言的开源3D绘图软件。
  • Inkscape – 一个开源的SVG矢量图形编辑器。
  • Sugar – 作业系统项目OLPC的图形用户界面,其大多数软件都是使用Python编写。
  • Odoo – 仍在持续发展壮大且最受欢迎的ERP软件。
  • Sage – 一个覆盖许多数学功能的应用软件。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/python/pythonbasic/2652.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注