一、模块和包的概念
什么是模块?
在python中一个.py文件就是一个模块(Model)。
模块的分类:内置模块、第三方开源模块、自定义模块。
模块的意义:简单、可维护、可复用、区分作用域。
什么是命名空间:
命名空间是一个从名称到对象的映射,它用于存储变量名及其对应的值。在Python中,每个模块、函数、类以及每个类的实例都有自己独立的命名空间。
这意味着在不同的命名空间中,即使变量名相同,它们也代表不同的对象。命名空间的主要目的是避免命名冲突,使得每个标识符都能在其所属的命名空间中唯一地标识一个对象。
命名空间的意义:按逻辑分组、防止同名冲突、提供上下文。
什么是包?
包(package)是一个或多个Python模块的文件夹,里面包含一个声明__init__.py的特殊模块。__init__.py中的方法是包的方法,当然也可以为空,它只是标记当前文件夹为包。使用包可以更好分层管理模块。
结构:
package/
__init__.py
module1.py
module2.py
二、导入格式
模块导入格式:
import <模块> import <模块> as <别名> from <模块> import <名称> from <模块> import <名称1>,<名称2>,...
包导入格式:
import <包> import <包> as <别名> from <包> import <模块> from <包> import <模块> as <别名> from <包> import <模块1> as <别名1>,<模块2> as <别名2>,... from <包> import <模块1>,<模块2>,... import <包>.<模块> import <包>.<模块>.<名称> from <包>.<模块> import <名称> from <包>.<子包>.<模块> import <名称>
三、如何使用
如何引入模块?
1,首先创建一个module.py脚本,之后在脚本中写入如下加减乘除公共方法代码。
# module.py def add(x,y): return x + y def sub(x,y): return x - y def mult(x,y): return x * y def division(x,y): return x / y
2,在另一个脚本中调用1中即module.py模块中的方法
# main.py import module add = module.add(2,3) print(add) import module as m1 sub = m1.sub(2,3) print(sub) from module import mult,division mult = mult(2,3) division = division(2,3) print(mult,division)
如何引入包:
1,首先创建包,包中有标志文件__init__.py脚本,它里面有hello方法。同时包中也有module.py脚本如下:

2,在package同级目录下新建test.py脚本,在test.py中引入包就可以调用包中方法如下:

四、如何安装第三方包
因为有墙的存在部分包安装很慢,所以国内一般使用豆瓣、清华镜像源等网址进行加速安装,命令如下:
例如:使用清华镜像源安装openpyxl包:
pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple/
镜像地址:
清华大学 TUNA 镜像源:
https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云镜像源:
https://mirrors.aliyun.com/pypi/simple/
华为云镜像源:
https://developer.huaweicloud.com/mirror/#/pypi_simple
豆瓣(DOUBAN)镜像源:
https://pypi.douban.com/simple/
中国科技大学镜像源:
https://pypi.mirrors.ustc.edu.cn/simple/
北京外国语大学镜像源:
https://pypi.mirrors.bfu.edu.cn/simple/