包和库

2.3 包和库

2.3.1 包的概念

包是模块上的一个概念,它将多个脚本文件(模块文件)打包以便于管理。

[En]

A package is a concept on top of a module that packages multiple script files (module files) for ease of management.

包是一种用 点式模块名构造 Python 模块命名空间的方法。例如,模块名 A.B 表示包 A 中名为 B 的子模块。正如模块可以区分不同模块之间的全局变量名称一样,点式模块名可以区分 NumPy 或 Pillow 等不同多模块包之间的模块名称。
包其实就是文件夹,包和文件夹的一大区别在于:包内存放了一个名为 __pycache__的文件夹和 __init__.py文件,该文件的内容就将是包的内容。然后是一些模块文件和子目录,如果子目录中也有__init__.py,那么它就是这个包的子包了。

2.3.2 包的导入

可以通过类似导入模块的方式导入包。导入包其实就是运行包下的 __init__.py文件。如果包中没有 __init__.py,则在导入包时不会有效果。但是会自动创建一个名为 __pycache__的文件夹。
由于在导入包的时候会自动运行包内的__init__.py文件,所以一般会在该文件中写明导入包时要导入的包内其他py文件的语句。此时就可以用到相对导入了。
不建议在包内的__init__.py文件中写入其它非导入模块语句,尽量保证该文件的简洁性。
在__init__.py文件中,可以定义一个变量: __all__,一般这个变量等于该包内所有子模块名,这样在通过 from 包 import *时则会查找__all__变量,并将该变量所指向的模块全部导入。

2.3.3 库的概念

库是具有相关功能模块(包)的集合。这也是Python的一大特色之一,即具有强大的标准库、第三方库以及自定义模块。一些大型的项目要实现比较多的功能,创建了许多的包和模块,那么就可以将所有的包放在一起,形成一个库。
实际上,库是一个抽象的概念,只要是一个模块或一组模块,开发它们的目的就是供其他模块调用,就可以称之为库。

[En]

In fact, library is an abstract concept, as long as a module or a group of modules, the purpose of developing them is for other modules to call, it can be called library.

2.3.4 标准库

Python 标准库
Python语言提供了功能丰富的标准库 。这些标准库把开发中常用的功能都做好了。我们可以直接使用它们。
这些标准库里面有一部分叫做内置类型(built-in types)和内置函数(built-in functions)。内置类型和内置函数无须使用import导入,可以直接使用。内置类型有:int、float、str、list、tuple等。
还有些标准库,需要使用import导入,才能使用。常见有 sys, os, time, datetime, json,random 等。
我们要结束Python程序,就可以使用sys库里面的exit函数。
我们要得到字符串形式的当前日期和时间,可以使用datetime库。
我们要获取随机数字,可以使用random库。
练习
1、利用dir、help探索上述标准库
2、使用不同的方式导入上述标准库

2.3.5 安装第三方库

同样的,和模块一样,来自网上其它人员编写的模块组合而成的库称之为第三方库,Python强大之处不仅仅是系统自带的标准库,还有来自网上由其它人员编写的大量实用的第三方库,下载安装之后可以极大的提高编程效率,让我们不必为了编写某些特定的功能去重复造 轮子
要使用第三方库,我们需要在本地安装它们。通常有几种安装第三方库的方法:

[En]

To use third-party libraries, we need to install them locally. There are generally several ways to install third-party libraries:

2.3.5.1 通过pip安装

这也是最简单、最常用的方法。

[En]

This is also the simplest and most commonly used way.

1、运行cmd命令打开cmd窗口。
2、在cmd窗口中输入命令: pip install 第三方库名[==版本号]
3、按下回车后会自动到PYPI收集并安装第三方库。安装的路径为Python\Lib\site-packages,这个文件夹就是Python专门用来下载并安装第三方库的。

2.3.5.2 复制文件夹安装

1、直接到已经安装好第三方库的电脑上,找到第三方库安装的文件路径,将库相关的文件夹(一般为库同名的文件夹以及 库名-版本号.dist-info文件夹)复制
2、粘贴到另一台电脑相应的文件夹中。

注意:这种方法是电脑没有网络无法从网上下载的一种替代方式,不推荐使用。并且要注意两台电脑上安装的Python版本最好要一致。

2.3.5.3 到PYPI官网上下载安装文件安装

1、直接打开PYPI并搜索要安装的库名。
2、找到后点击库主页左上方的 Download files。然后在右侧找到适合自己电脑系统的安装文件。注意,这个时候下载的安装文件是 .whl格式的。
3、打开cmd窗口并将工作目录切换到刚才下载的whl安装文件所在的目录中
4、通过命令 pip install xx.whl即可完成安装。

2.3.5.4 通过PyCharm安装

1、打开PyCharm,然后点击 文件\设置\项目:项目名\Python解释器,然后点击 +

包和库

2、在弹出的对话空中,在上方输入要安装的库名:requests,找到之后点击左下方的 安装软件包后。软件会自动下载并安装。

包和库

练习
通过不同的方式分别安装:pandas、requests、pygame、numpy库

2.3.6 导入说明

1、为了保证运行效率,每次解释器会话只导入一次模块。如果更改了模块内容,必须重启解释器;仅交互测试一个模块时,也可以使用 importlib.reload(),例如:

import importlib
importlib.reload(模块名)
2、可以使用as关键字将最后导入的内容和as后的名称进行绑定。例如:
import math as mt # 用mt代表导入后的math模块名
from math import sqrt as st # 用st代表导入的sqrt函数
模块名、变量、函数、类等都可以通过as和其它内容进行绑定。这么做的好处有几点:

  • 无需添加模块名称即可区分同名对象
    [En]

    objects with the same name can be distinguished without adding a module name*

  • 简化输入,提高代码编写速度
    [En]

    simplify input and improve code writing speed*

    3、使用 from package import item 时,item 可以是包的子模块(或子包),也可以是包中定义的函数、类或变量等其他名称。import 语句首先测试包中是否定义了 item;如果未在包中定义,则假定 item 是模块,并尝试加载。如果找不到 item,则触发 ImportError 异常。相反,使用 import item.subitem.subsubitem 句法时,除最后一项外,每个 item 都必须是包;最后一项可以是模块或包,但不能是类、函数或变量。

Original: https://www.cnblogs.com/sibide/p/16132238.html
Author: crleep
Title: 包和库

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/499998/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球