
5.1 为什么要安装外部模块
外部模块是相对于标准资源(标准模块、标准库)而言的。
Python标准库的确很丰富,也很强大,它们可以满足各种需要,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。更让人称奇的是,只要安装了Python,所有这些功能都是直接可用的。这很好地体现了Python所倡导的“功能齐全”理念。
但是,由于应用场景千变万化,程序设计中要使用的资源也千差万别,而任何一门语言都不可能包罗万象,所以需要依靠外部资源来弥补内部资源的不足。在计算机界,最著名的一句话是“站在巨人的肩膀上”,就Python而言,内部和外部资源就是巨人的肩膀!
Python有以下两个特点。
· 特点1:Python是FLOSS(自由/开放源码软件)之一。
· 特点2:有不少程序往往是基于其他语言被开发的,如C、C++等。
正是由于上述两个特点,使得Python的功能不断被扩充,而这些被扩充的功能往往是通过第三方模块(外部模块、外部库)的形式提供给开发者的。也正是由于这些外部模块,使得Python的生态日益被完善,功能越来越强大。在Python的生态中,有很多高质量的外部模块,如wxPython、Twisted、chardet、pygame等,它们种类繁多,功能覆盖全面。
由于这些外部模块不包含在Python中,所以,在使用前,需要从外部下载并安装它们。不同的外部模块提供的安装形式各不相同。有些外部模块提供了可自动安装的安装包,如pygame的Windows版本,直接双击安装包程序就可以安装它。然而大多数外部模块并不提供这样的安装方式,部分开发者往往因为不会安装它们而导致无法在程序中引用这些外部模块,从而影响了学习和开发的心情。所以,要学习和应用外部模块,首先要解决的就是安装问题。
在安装外部模块的过程中,将自动安装该外部模块的前置模块(关联模块)。这是一件幸运的事情,因为大多数外部模块往往有很多依赖关系,而开发者很难一一搞清楚某个外部模块所依赖的模块有哪些。所以,自动安装关联模块的特性使得安装过程被大大地简化了。