购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.9 模块的安装和导入

Python的魅力之一就是拥有丰富的模块,用户在编程时可以直接调用模块来实现强大的功能,无须自己编写复杂的代码。下面就来学习Python模块的知识。

1.9.1 初识模块

如果要在多个程序中重复实现某个特定功能,那么能不能直接调用自己或他人已经编写好的代码,而不用重复编写代码呢?答案是肯定的,这就要用到Python中的模块。模块又称为库或包,简单来说,每一个扩展名为“.py”的文件都可以称为一个模块。Python的模块主要分为下面3种。

1. 内置模块

内置模块是指Python自带的模块,不需要安装就能直接使用,如time、math、pathlib等。

2. 自定义模块

Python用户可以将自己编写的代码或函数封装成模块,以方便在编写其他程序时调用,这样的模块就是自定义模块。需要注意的是,自定义模块不能和内置模块重名,否则将不能再导入内置模块。

3. 第三方模块

通常所说的模块就是指第三方模块。这类模块是由一些程序员或企业开发并免费分享给大家使用的,通常一个模块用于实现某一个大类的功能。例如,xlwings模块专门用于操控Excel,pandas模块专门用于处理和分析数据。

Python之所以能风靡全球,一个很重要的原因就是它拥有数量众多的第三方模块,相当于为用户配备了一个庞大的工具库。当我们要实现某种功能时,无须自己制造工具,而是可以直接从工具库中取出工具来使用,从而大大提高开发效率。

安装Anaconda时会自动安装一些第三方模块,而有些第三方模块需要用户自行安装,1.9.2节会讲解模块的安装方法。

1.9.2 模块的安装

第三方模块常用的安装方式有两种:一是用pip命令安装;二是在PyCharm中安装。下面分别进行讲解。

1. 用pip命令安装模块

pip是Python提供的一个命令,用于管理第三方模块,包括第三方模块的安装、卸载、升级等。用pip命令安装模块的方法最简单也最常用,下面以安装xlwings模块为例进行讲解。

按快捷键【 056-02 +R】打开“运行”对话框, 001-01 在对话框中输入“cmd”, 001-01 单击“确定”按钮,如下左图所示。随后会打开命令行窗口, 001-01 在窗口中输入命令“pip install xlwings”,如下右图所示。命令中的“xlwings”是需要安装的模块的名称,如果需要安装其他模块,将“xlwings”改为相应的模块名称即可。按【Enter】键,等待一段时间,如果出现“Successfully installed”的提示文字,说明模块安装成功,之后在编写Python代码时,就可以使用xlwings模块的功能了。

056-01
技巧 通过镜像服务器安装模块

pip命令默认从设在国外的服务器上下载模块,由于网速不稳定、数据传输受阻等原因,安装可能会失败,一个解决办法是通过国内的企业、院校、科研机构设立的镜像服务器来安装模块。例如,从清华大学的镜像服务器安装xlwings模块的命令为“pip install xlwings -i https://pypi.tuna.tsinghua.edu.cn/simple”。命令中的“-i”是一个参数,用于指定pip命令下载模块的服务器地址;“https://pypi.tuna.tsinghua.edu.cn/simple”则是由清华大学设立的模块镜像服务器的地址。更多镜像服务器的地址读者可以自行搜索。

2. 在PyCharm中安装模块

除了使用pip命令安装模块,还可以在PyCharm中安装模块。下面还是以安装xlwings模块为例进行讲解。

步骤01 启动PyCharm, 001-01 单击菜单栏中的“File”, 001-01 在展开的菜单中单击“Settings”命令,如下图所示。

057-01

步骤02 001-01 在打开的“Settings”对话框中展开当前项目的选项组,如“Project: python”, 001-01 单击“Python Interpreter”选项, 001-01 在右侧界面中可看到PyCharm配置Python运行环境时自动检测到的已安装模块。现在还要安装其他模块, 001-01 单击模块列表上方的 057-03 按钮,如下图所示。

057-02

步骤03 001-01 在打开的“Available Packages”对话框中输入搜索模块的关键词,如“xlwings”,按【Enter】键, 001-01 在搜索结果中选择要安装的模块, 001-01 单击“Install Package”按钮,如下图所示。等待一段时间,安装完毕后即可关闭对话框。

058-01

1.9.3 模块的导入

安装好模块后,还需要在代码中导入模块,才能调用模块的功能。这里主要讲解两种导入模块的方法:import语句导入法和from语句导入法。

1. import语句导入法

import语句导入法会导入指定模块中的所有函数,适用于需要使用指定模块中的大量函数的情况。import语句的基本语法格式如下:

import 模块名

演示代码如下:

1  import math  # 导入math模块
2  import time  # 导入time模块

用该方法导入模块后,在后续编程中如果要调用模块中的函数,则要为函数名添加模块名的前缀,演示代码如下:

1  import math
2  a = math.sqrt(16)
3  print(a)

第2行代码要调用math模块中的sqrt()函数来计算16的平方根,所以为sqrt()函数添加了前缀math。运行结果如下:

1  4.0

2. from语句导入法

有些模块中的函数特别多,用import语句全部导入后会导致程序运行速度较慢。如果只需要使用模块中的少数几个函数,可以使用from语句导入法,这种方法可以指定要导入的函数。from语句的基本语法格式如下:

from 模块名 import 函数名

演示代码如下:

1  from math import sqrt  # 导入math模块中的单个函数
2  from time import strftime, localtime, sleep  # 导入time模块中的多个函数

使用from语句导入模块的最大好处就是在调用函数时可以直接写出函数名,无须添加模块名前缀,演示代码如下:

1  from math import sqrt  # 导入math模块中的sqrt()函数
2  a = sqrt(16)
3  print(a)

因为第1行代码中已经写明了要导入哪个模块中的哪个函数,所以第2行代码中可以直接用函数名调用函数。运行结果如下:

1  4.0

这两种导入模块的方法各有优缺点,编程时根据实际需求选择即可。

此外,如果模块名或函数名很长,可以在导入时使用关键字as对它们进行简化,以方便后续代码的编写。通常用模块名或函数名中的某几个字母来代替模块名或函数名,演示代码如下:

1  import numpy as np  # 导入NumPy模块,并将其简写为np
2  from math import factorial as fc  # 导入math模块中的factorial()函数,并将其简写为fc
技巧 使用通配符导入模块

使用from语句导入法时,如果将函数名用通配符“*”代替,写成“from模块名import *”,则和import语句导入法一样,会导入模块中的所有函数。演示代码如下:

1  from math import *  # 导入math模块中的所有函数
2  a = sqrt(16)
3  print(a)

这种方法的优点是在调用模块中的函数时无须添加模块名前缀,缺点是不能使用as关键字来简化函数名。 yann706Kkg3eRIBSJKdNBZJvzHBz9EAma7zgocVtY5VCMYxmJH2gmgUC3Ujp+f3+

点击中间区域
呼出菜单
上一章
目录
下一章
×