一、模块和包的概念
在Python中,一个.py文件就称之为一个模块(Module)
Python又引入了按目录来组织模块的方法,称为包(Package)。
1. 模块导入方法:
- import 语句
import module1[, module2[,… moduleN]
当我们使用import语句的时候,Python解释器是怎样找到对应的文件的呢?答案就是解释器有自己的搜索路径,存在sys.path里。
[’’, ‘/usr/lib/python3.4’, ‘/usr/lib/python3.4/plat-x86_64-linux-gnu’,
‘/usr/lib/python3.4/lib-dynload’, ‘/usr/local/lib/python3.4/dist-packages’, ‘/usr/lib/python3/dist-packages’] - from…import 语句
from modname import name1[, name2[, … nameN]]
这个声明不会把整个modulename模块导入到当前的命名空间中,只会将它里面的name1或name2单个引入到执行这个声明的模块的全局符号表。 - From…import* 语句
from modname import *
2、Package包的使用
引入了包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。现在,view.py模块的名字就变成了hello_django.app01.views,类似的,manage.py的模块名则是hello_django.manage。
请注意,每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录(文件夹),而不是一个包。init.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是对应包的名字。
调用包就是执行包下的__init__.py文件
- init.py的作用
- Python中package的标识,不能删除(包其实是一个目录,为了和目录做区别,使用了__init__.py)
- 定义__all__用来模糊导入(包的调用中介绍)
- 编写Python代码(不建议在__init__中写python模块,可以在包中在创建另外的模块来写,尽量保证__init__.py简单)
如果您将一个或多个模块放在 文件中,那么您有一个包。简而言之,包本质上是一个包含代码的文件夹。包实际上只是一个目录,但是所有包都必须包含一个__init__.py 文件。该文件告诉Python将目录视为包含包
常见的包结构如下:
- 导入包的方法:
import 包名.模块名
from 包名 import 模块名
import 包名(注意__init__.py函数的内容)
- pip 安装第三方模块
第三方模块 通常是指由 知名的第三方团队 开发的 并且被 程序员广泛使用 的 Python 包 / 模块
pip 是一个现代的,通用的 Python 包管理工具
提供了对 Python 包的查找、下载、安装、卸载等功能
安装和卸载命令如下:
#将模块安装到 Python 2.x 环境
$ sudo pip install pygame
$ sudo pip uninstall pygame#将模块安装到 Python 3.x 环境
$ sudo pip3 install pygame
$ sudo pip3 uninstall pygame